Liquibase 4.6.2 Release Notes
Liquibase v4.6.2 is a patch release.
See GitHub formatted release notes for more information. Full changelog: 4.6.1–4.6.2 (December 1, 2021)
This release includes community-contributed pull requests, Liquibase Open Source and Liquibase Pro bug fixes, and a new quality checks functionality.
Here is a closer look at what we improved in the latest release.
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 Policy Check [DAT-8444]
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|WARNING|SEVERE|OFF> --log-level=<FINE|INFO|WARNING|SEVERE|OFF>
--log-file=log.txt update --changelog-file=<changelog>
You can also set the parameter as follows:
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]
Enhancements
- [PRO] Added the ability to configure the
DDL_LOCK_TIMEOUT
parameter for Oracle without SQL Plus and define the connection timeout. You can configureDDL_LOCK_TIMEOUT
as follows: liquibase.ddlLockTimeout: <value>
in the Liquibase properties file--ddl-lock-timeout=<value>
as a CLI global parameterLIQUIBASE_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 theaddColumn
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 theNUMERIC[]
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 theunexpected-changesets
command. The PR fixes PR#1987. - [PR#2168] [nvoxland] [gilles-gosuin] Fixed the parsing logic for
YAMLChangelogParser
andchangeLogId
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 thegenerate-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
, andLIQUIBASE_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 isfalse
. You can set thestrict
parameter as follows:liquibase.strict=false|true
in the Liquibase properties file--strict=false|true
as a CLI parameterLIQUBIASE_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]
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: