Liquibase 4.6.0 and 4.6.1 Release Notes

Liquibase v4.6.0 is a major release. Liquibase 4.6.1 is a patch release.

See GitHub formatted release notes for more information. Full changelog: 4.5.0–4.6.1 (November 4, 2021)

Note: Liquibase 4.6.0 release has the wrong version of the Liquibase Pro XSD file. Liquibase 4.6.1 release is a patch release that fixes the issue.

Liquibase 4.6.0 Release

This release includes many community-contributed pull requests, Liquibase Open Source and Liquibase Pro bug fixes.

Here is a closer look at what we improved in the latest release.

Notable Changes

Starting with version 4.6.0, the Windows and Mac/Linux Liquibase installers and the .tar.gz and .zip installation files include the most common JDBC drivers in the installation package:

  • DB2
  • Firebird
  • H2
  • HSQLDB
  • PostgreSQL
  • MariaDB
  • MSSQL
  • Oracle
  • SQLite

To use the available drivers, see the Adding and Updating Liquibase Drivers documentation. Also, check the page for the cases when you need different drivers. [PR#2031] [DAT-7438]

Note: Since Liquibase 4.6.0 provides driver jar files, the size of the installation package is bigger than the size of the installation package in earlier versions.

Liquibase Pro Changes

  • Quality checks include the bulk-set command [DAT-8289]
  • Tip: For more information, see the bulk-set documentation.

  • New quality checks:

    • Static check: Warn when a table truncation is detected [DAT-7933]
    • Dynamic check: Warn when granting specific privileges [DAT-7972]
    • Static check: Warn when the GRANT WITH ADMIN OPTION statement is detected [DAT-7955]
    • Static check: Warn when the GRANT WITH GRANT OPTION statement is detected [DAT-7995]

    Tip: For more information, see the Library of Policy Checks documentation.

  • The liquibase.checks-settings.conf file is unencoded in version 4.6.0 and later versions for easier inspection that allows you to resolve a merge conflict in source control. Liquibase backs up encoded files in the working directory, and you can still use previous versions by specifying the --checks-settings-file parameter in the CLI, as an environment variable, or as a property in the Liquibase properties file. [DAT-8473]

If you use Liquibase Hub, check the Liquibase Hub DevOps Metrics documentation to learn more about DevOps metrics that provide the data to optimize your DevOps performance.

Enhancements

  • [PR#1975] [nvoxland] Changed the XSD default errorOnMissingOrEmptyattribute to true for the includeAllattribute in the XML changelog file. The PR fixes PR#1960.
  • [PR#1993] [siudeks] Added support for deferrable primary keys in the createTableChange Type. The PR fixes PR#1597.
  • [PR#1986] [alexey-ivanov-official] [parthdesai21google] Added support for the constraintNameattribute in the dropNotNullConstraintattribute. Updated the addNotNullConstraint rollback logic to pass the constraint name to the generated dropNotNullConstraint change. The PR fixes PR#1492 and PR#1942.
  • [PR#2114] [nvoxland] Improved code and added tests in the liquibase.util package
  • [PR#1679] [thomseno] Changed the datetime type to datetime2 for the timestamp type on SQL Server.
  • [PR#2144] [matejsp] Changed the default encoding to UTF-8. Added a new global liquibase.fileEncoding setting, which you can set as --file-encoding=ASCII in the CLI, liquibase.fileEncoding: ASCII in the Liquibase properties file (liquibase.properties), and LIQUIBASE_FILE_ENCODING=ASCII as an environment variable. The PR fixes PR#1445.
  • [PRO] Added a message to warn Liquibase Pro users when they have noncompliant Liquibase environment variables if the strictattribute is set to true [DAT-6946]

Fixes

  • [PRO] Fixed the issue with Liquibase 4.4.0 and later versions to prompt if the Liquibase Pro license key is expired or invalid. [DAT-7862]
  • [PRO] Fixed Liquibase Pro SQL Plus changesets failures with the Kerberos setup [DAT-8102]
  • [PRO] Fixed the snapshot command using for CockroachDB with Liquibase Pro license key [DAT-8253]
  • Fixed an issue with running quality checks on Windows when using a configuration file created on Linux/macOS [DAT-8298]
  • Fixed the ChangesetCommentCheck check to handle a lack of comments in the tagDatabaseChange Type [DAT-8313]
  • Fixed the default severity for the existing liquibase.checks-settings.conf files [DAT-8328]
  • Fixed the customize and copy commands to handle directories with spaces [DAT-8389]
  • Fixed the schemas and includeSchemaattributes for the generate-changelog command in Liquibase 4.4 and later versions [DAT-8133]
  • Fixed the quality checks customization issue when using Git Bash [DAT-8392]
  • Fixed the message for the quality checks severity customization [DAT-8479]
  • Fixed the quality checks halting execution when the checks settings file contains entries for rules which do not exist in the system. Liquibase skips unknown checks and continues the execution. [DAT-8507]
  • [PR#1407] [pirocraft] Fixed the issue with Liquibase inserting a wrong default datetime value into MySQL. The PR fixes PR#1395.
  • [PR#1415] [Alex1OPS] Fixed the insertChange Type with the valueSequenceNext and valueSequenceCurrentattributes to use the schema specified on a statement level of a changeset. The PR fixes PR#1304.
  • [PR#1931] [nvoxland] Fixed the issue with Liquibase throwing a null pointer exception in the CLI if the LicenseService interface cannot be loaded because of the missing jaxb dependencies
  • [PR#2001] [haster] Fixed the UniqueConstraintSnapshotGenerator class switching to a bulk query after four unique constraints. The PR fixes PR#1996.
  • [PR#1973] [doakd] Fixed the issue with Liquibase formatted SQL changesets that are skipped if there is a space in the --changeset line. The PR fixes PR#1919.
  • [PR#104] [nvoxland] Fixed the drop-all command failing in the PostgreSQL database when the Liquibase-Cassandra extension is in the liquibase/lib directory. The PR fixes PR#47.
  • [PR#2006] [kdenis4] Fixed Liquibase not reading the liquibaseSchemaName and liquibaseCatalogName configuration settings. The PR fixes PR#2000.
  • [PR#1465] [danielthegray] Fixed the issue with Liquibase incorrectly inserting a long CLOB value in the database. Added integration tests.
  • [PR#1974] [gjvoosten] Fixed the issue with Liquibase not handling case-sensitive primary key names in the dropPrimaryKeyChange Type for PostgreSQL. The PR fixes PR#1933.
  • [PR#1941] [meisenla] [ckulenkampff] Fixed the sqlFileChange Type to handle the encodingattribute. The PR fixes PR#1760.

Contributions

Our community has built a lot. Thanks to everyone who contributes and helps make the Liquibase community strong, including the following first-time contributors: