Liquibase 4.7.0 Release Notes

Liquibase v4.7.0 is a major release.

See GitHub formatted release notes for more information. Full changelog: 4.6.2–4.7.0 (January 10, 2022)

Tip: Liquibase Hub introduces the Liquibase Hub DevOps Metrics functionality with four reports that provide the data to optimize your DevOps performance: Deployment Frequency, Change Migration Time, Change Failure Rate, Time to Fix Failing Changes.

This release includes community-contributed pull requests, Liquibase Open Source and Liquibase Pro bug fixes, and a new command to get started with Liquibase – the init command.

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

Breaking Changes

  • [PR#2228] [Nathan Voxland] Handle the fact that FK names are not always unique. Fixes PR#2227. When using the foreignKeyConstraintExists precondition, you must now specify foreignKeyTableName. See also: PR#2565 fixing #2389. in 4.11.0.

Notable Changes

Liquibase 4.7.0 introduces the init command with the project and start-h2 subcommands:

  • The init project subcommand helps to set configuration files for using Liquibase or, if you already use Liquibase, create new project files with minimal input. [DAT-8640]
  • The init start-h2 subcommand helps to start the included in-memory H2 database. The subcommand needs to be run in a new command line or terminal window. [DAT-8945]

Note: For more information and examples of using init project, see init project.

Additionally, we have updated the Liquibase Getting Started tutorials and sample changelog files in the installation package. From now on, you can use sample SQL, XML, JSON, and YAML changelog files with the corresponding changesets. [LB-2177] [LB-2174]

Note: Check Liquibase Getting Started to see more details.

Enhancements

  • [PRO] Improved the output of the rollback-one-update command [DAT-7590]
  • [PR#2244] [Tsvi Zandany] Enabled the use of the jdbc:edb URL for Liquibase to recognize EnterpriseDB
  • [PR#2225] [Nathan Voxland] [Konstantin] Enabled the use of lowercase sys.synonyms objects for the generate-changelog and diff-changelog commands in Liquibase and SQL Server. The PR fixes PR#2044.
  • Added DB2 on z/OS database type and Java classes for Liquibase [DAT-8575]
  • Upgraded H2 to the later version – 2.0.206
  • [PR#2197] [Andrii Tytarchuk] Added optional SQL Plus properties to the liquibase.sqlplus.conf file and put the file in the examples/sql folder [DAT-7618]
    • liquibase.sqlplus.args
    • liquibase.sqlplus.keep.temp.path
    • liquibase.sqlplus.keep.temp.name

Fixes

  • Fixed the generate-changelog wrong dependency order: the addPrimaryKeyChange Type appeared before its base table in PostgreSQL [DAT-8256]
  • Fixed the quality checks settings file to be created using both relative and absolute paths [DAT-8275]
  • Fixed quality checks reporting only the first failure for a changeset to report all failures in outputs [DAT-8630]
  • [PR#2066] [smainz] Fixed the loadDataChange Type to recognize CSV files when loading data with the path that contains a dot character ('.')
  • [PR#2071] [Nicolas Humblot] [Philipp] Fixed the addNotNullConstraintChange Type causing the "Data too long" error message. The PR fixes PR#1054.
  • [PR#2073] [smainz] Fixed the relativeToChangelogFileattribute for loadData, createProcedure, and createViewChange Types
  • [PR#2228] [Nathan Voxland] Updated the logic of the foreign key names that are not always unique
  • [PR#2081] [Jakub Herkel] Fixed OSGI support (manifest and class loading)
  • [PR#2192] [Andrii Tytarchuk] Fixed COLUMN_SIZE for the PostgreSQL NUMERIC[] datatype

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: