Skip to content

v4.6.2

Compare
Choose a tag to compare
@github-actions github-actions released this 01 Dec 15:44
· 3063 commits to master since this release

Liquibase 4.6.2 is a patch release

Please report any issues to https://github.com/liquibase/liquibase/issues

Notable Changes

Liquibase 4.6.2 introduces the multiple objects quality check that allows you to define and check the naming pattern for multiple types of objects rather than one type of object. For example, you do not want to have a dash in the table, column, and sequence names. With the multiple objects check, you can specify a pattern to check for dashes and choose tables, columns, and sequences as the objects to check. In version 4.6.2, the check is available for:

  • Table
  • Column
  • Sequence

Note: For more information, see Multiple Objects Quality Check [DAT-8444]

The logging of SQL statements and execution output

Liquibase 4.6.2 includes the liquibase.sql.logLevel configuration option to control the level at which SQL is logged. The default value is FINE.

You can run the --sql-log-level parameter with the --log-level <level> parameter in the CLI:

liquibase --sql-log-level <FINE|INFO|SEVERE|WARNING|OFF> --log-level=<FINE|INFO|SEVERE|WARNING|OFF> --log-file=log.txt update --changelog-file=<changelog>

You can also set the parameter as follows:

  • liquibase.sql.logLevel: <FINE|INFO|SEVERE|WARNING|OFF> in your liquibase.properties file
  • LIQUIBASE_SQL_LOG_LEVEL=<FINE|INFO|SEVERE|WARNING|OFF> as an environment variable [PR#1520] [nvoxland]

An additional liquibase_libs directory

When you run Liquibase in the CLI, the executables generate a classpath with the .jar files from the LIQUIBASE_HOME and LIQUIBASE_HOME/lib directories. Liquibase 4.6.2 adds the ability to load an additional directory of liquibase_libs in the current working directory to the classpath. With the liquibase_libs directory located in the /lib directory, projects can have separate extensions, drivers, and versions specific to a project [PR#2015] [mcred]

The validate command in automation

From now on, the exit code for the validate command running in automation shows 1 when there is an error. The PR fixes PR#1006. [PR#2185] [nvoxland] [christf]

Enhancements

  • [PRO] Added the ability to configure the DDL_LOCK_TIMEOUT parameter for Oracle without SQL Plus and define the connection timeout. You can configure DDL_LOCK_TIMEOUT as follows:
    • liquibase.ddlLockTimeout: <value> in your liquibase.properties file
    • --ddl-lock-timeout=<value> as a CLI global parameter
    • LIQUIBASE_DDL_LOCK_TIMEOUT=<int> as an environment variable [DAT-7649]
  • Improved the output of the SqlUserDefinedPatternCheck quality check copy [DAT-8492]
  • [PR#1817] [stalbrecht] Added the MSSQLDatabase specific error evaluation when creating DATABASECHANGELOGLOCK table
  • [PR#2180] [nvoxland] [eldadko] Added support for MySQL function indexes. The PR fixes PR#1626.
  • [PR#928] [CORE-931] [RG9] Added support for the NOT NULL constraint with an initial default value in the addColumn Change Type

Fixes

  • [PR#2173] [wwillard7800] [deci260] Fixed the issue with handling multi-column indexes during the JSON snapshot. The PR fixes PR#1260.
  • [PR#1793] [janjicandjelka8] Fixed the handling of the remarks attribute in a primary key column tag for MariaDB
  • [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes PR#1774.
  • [PR#1970] [nvoxland] Fixed the handling of the addColumn Change Type in SQLite
  • [PR#1995] [szandany] Fixed the generate-changelog command to generate the NUMERIC[] data type for PostgreSQL correctly
  • [PR#1990] [JayWelborn] Fixed the SQL generated by the alterSequence Change Type to be compatible with the Oracle, PostgreSQL, MariaDB, and MSSQL databases
  • [PR#2020] [nvoxland] [dewa-actico] Fixed the handling of nested changelog preconditions. The PR fixes PR#1624.
  • Fixed the naming of the checks settings file shown as null if the file was corrupted [DAT-8553]
  • [PR#2021] [nvoxland] [zamani84] Fixed the issue with Liquibase escaping the backslash in values stored in objects. The PR fixes PR#1598.
  • [PR#2083] [jamey-clari] Enabled the update operations to continue if the DATABASECHANGELOGLOCK table already exists, which helps to serialize all processes following schema creation.
  • [PR#2167] [nvoxland] [obovsunivskyii] Fixed the --verbose flag used in the unexpected-changesets command. The PR fixes PR#1987.
  • [PR#2168] [nvoxland] [gilles-gosuin] Fixed the parsing logic for YAMLChangelogParser and changeLogId in a Map. The PR fixes PR#1988.
  • [PR#2102] [prakashseervi] Implemented the handling of the GENERATED ALWAYS AS clause while creating a table for PostgreSQL
  • [PR#2029] [Marcono1234] Fixed the LOCKGRANTED column to include time zone information in the DATABASECHANGELOGLOCK table
  • [PR#2059] [wardvijf] Fixed the support for custom DB2Database implementations. The PR fixes PR#2058.
  • [PR#2171] [logantracyo] Fixed typos in the ColumnConfig.java documentation
  • [PR#2189] [nvoxland] Fixed the classpath to include files with the relativeToChangelog=true parameter for Spring Boot
  • [PR#2216] [tkalmar] Fixed the log message for PostgreSQL versions
  • [PRO] Fixed the snapshot command failing against CockroachDB with the Liquibase Pro license key applied [DAT-8253]
  • Fixed the dependency order for a changelog file with the addPrimaryKey Change Type generated by the generate-changelog command for PostgreSQL [DAT-8256]
  • [PRO] Fixed the following environment variables LIQUIBASE_COMMAND_CHECKS_CONFIGURE_CHECKS_SETTINGS_FILE, LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SETTINGS_FILE, and LIQUIBASE_COMMAND_CHECKS_SHOW_CHECKS_SETTINGS_FILE to be detected when running the quality checks commands [DAT-8546]
  • Fixed the default value of the strict parameter. The default value is false. You can set the strict parameter as follows:
    • liquibase.strict=false|true in your liquibase.properties file
    • --strict=false|true as a CLI parameter
    • LIQUIBASE_STRICT=false|true as an environment variable [DAT-8547]
  • Fixed quality checks reporting only the first failure in a changeset to report all failures found [DAT-8583]
  • Fixed the Liquibase Cassandra extension failing when username and password are enabled [LB-2115]

Get Certified

Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

Read the Documentation

Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.

Meet the Community

Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to make it stronger:

Our first-time contributors

Thanks to everyone who helps make the Liquibase community strong!