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:
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
Liquibase 4.6.2 introduces the multiple objects name quality check that allows you to define and check the naming pattern for several objects rather than one object.
For example, you do not want to have a dash in the table, column, and sequence names. With the multiple objects name 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
You can use two patterns for multiple object check:
Multiple objects’ name in search:
Table name matches a pattern
Column name matches a pattern
Sequence name matches a pattern
Multiple objects’ name is not in search:
Table name does not match a specific pattern
Column name does not match a specific pattern
Sequence name does not match a specific pattern
Enhancements
[PRO] Added the ability to configure the DDL_LOCK_TIMEOUT parameter for Oracle without SQL Plus and define the connection timeout.
Improved the output of the SqlUserDefinedPatternCheck quality check copy
Changed the default value of the strict parameter to false. You can set the strict parameter as follows:
liquibase.strict=false|true in your liquibase.properties file
Improved the handling of nested changelog preconditions. The PR fixes PR#1624.
Enabled the update operations to continue if the DATABASECHANGELOGLOCK table already exists, which helps to serialize all processes following schema creation.
Added support for MySQL function indexes. The PR fixes PR#1626.
Added support for the NOT NULL constraint with an initial default value in the addColumn Change Type
Added a flag to control the logging of SQL statements and SQL execution output
Added support for the remarks attribute in a primary key column tag for MariaDB
Implemented the handling of the GENERATED ALWAYS AS clause while creating a table for PostgreSQL
Added the ability for Liquibase 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
Fixes
[PRO] Fixed the snapshot command failing against CockroachDB with the Liquibase Pro license key applied
Fixed the naming of the checks settings file shown as null if the file was corrupted
Fixed the issue with Liquibase escaping the backslash in values stored in objects. The PR fixes PR#1598.
Fixed the generate-changelog command to generate the NUMERIC[] data type for PostgreSQL correctly
Fixed the parsing logic for YAMLChangelogParser and changeLogId in a Map. The PR fixes PR#1988.
Fixed the --verbose flag used in the unexpected-changesets command. The PR fixes PR#1987.
Fixed the exit code for the validate command running in automation to be 1 when there is an error. The PR fixes PR#1006.
Fixed the dependency order for a changelog file with the addPrimaryKey Change Type generated by the generate-changelog command for PostgreSQL
[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 quality checks reporting only the first failure in a changeset to report all failures found
Fixed the time data type to be precise for PostgreSQL. The PR fixes PR#1774.
Fixed the SQL generated by the alterSequence Change Type to be compatible with the Oracle, PostgreSQL, MariaDB, and MSSQL databases
Fixed the Liquibase Cassandra extension failing when username and password are enabled
Fixed the LOCKGRANTED column to include time zone information in the DATABASECHANGELOGLOCK table
Fixed the classpath to include files with the relativeToChangelog=true parameter for Spring Boot
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps liquibase-maven-plugin from 3.6.3 to 4.6.2.
Release notes
Sourced from liquibase-maven-plugin's releases.
... (truncated)
Changelog
Sourced from liquibase-maven-plugin's changelog.
... (truncated)
Commits
b446474
Working on create-release.yml938c811
Working on create-release.ymlf8169bd
Working on create-release.yml31fb92c
Working on create-release.ymlccb70a7
Working on create-release.ymle9396a1
Working on create-release.yml34ffa6e
Working on create-release.yml5a75e18
Working on create-release.yml760ba7a
Working on create-release.yml6a49641
Working on create-release.ymlDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)