Liquibase 4.12.0 Release Notes
Liquibase v4.12.0 is a major release.
See GitHub formatted release notes for more information. Full changelog: 4.11.0–4.12.0 (June 17, 2022)
Breaking Changes
Support for Snowflake database has been moved from the external extension liquibase-snowflake into the main Liquibase artifact. If you are using the Snowflake extension, remove it from your lib
directory or however you are including it in your project. If you are using the Docker image, the snowflake
docker label will no longer be updated so you need to update your reference to either latest
or the version tag you prefer. For CLI users, the Snowflake driver also ships out of the box and so you should remove that from the lib
directory as well #2841
Enhancements
- Quality Checks for Databases (DAT-9298) by @StevenMassaro in #2715
- This capability extends checks from just the changelog to look at the database itself for conditions of compliance, security, and more. This is currently a Liquibase Labs restricted capability, so please contact mario@liquibase.com to request a license key.
- Added a new "
liquibase.showBanner
" setting. Setting this value to 'false
' will disable the Liquibase startup banner from being shown. By @nvoxland in #2871 - Added a new "
liquibase.missingPropertyMode
" setting to control what happens when a changelog contains a${...}
string that doesn't correspond to a set changelog property. The default continues to be "preserve," which leaves it as-is. But other possible values areERROR
orEMPTY
which will either stop execution with an error or replace it with an empty string. By @dwieland in #2656 - Added new "
liquibase.preserveSchemaCase
" argument to preserve the case of schemas exactly as passed to the various schema settings. Default remains "false
" as before. DAT-10027 By @wwillard7800 in #2888 - Introduced "
latest
" xsd file path. In addition tohttp://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.12.xsd
type XSDs references, you can now also usehttp://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
instead. By using "latest
", Liquibase will use the bundled XSD for its version. The uploaded "latest
" XSD will always be the most recent Liquibase release, so note how they can be different and locally cached IDE versions may be different yet. By @nvoxland in #2886 - Added new
ConfiguredValueModifier
extension point. This allows extensions to be written which will translate or convert configuration values from what was passed by the user before the value is passed to the internal code. By @mcred in #2252 - Updated
StandardLockService
interface to make it more useful for extensions by @Cliftonz in #2785
JDBC Driver and Third-Party Library Updates
- Added
connector-api.jar
tointernal/lib
by @nvoxland in #2873 - Upgraded
mysql-connector-java
from 8.0.28 to 8.0.29 by @dependabot in #2798 - Move
opencsv
to be non-shaded by @nvoxland in #2903 - Added Snowflake driver to CLI by @nvoxland in #2931
- Upgraded
mssql-jdbc
from 10.2.0.jre8 to 10.2.1.jre8 by @dependabot in #2846
Fixes
- Fixed BLOBs in
loadData
for MySQL/MariaDB by @MichaelCkr in #2595 - Fixed getting ENUM column values from Mysql database having multiple schemas by @akatiyar in #2616
- Added logic to
Derby.getDefaultDriver()
to check for availability of different driver classes by @AlexanderSashchenko in #2571 - Fixed
TableOutput
spaces when using long words (DAT-10069) by @StevenMassaro in #2879 - Fixed
addAutoIncrement
startValue
andincrementBy
support on Postgresql by @nvoxland in #2588 - Support non-classpath: protocols in Spring by @reallyinsane in #2524
- Fixed #2780:
AddColumnChange
with schema andNOT NULL
constraint fails by @MartinRied in #2781 - Make extension matching for SQL parsers case-insensitve DAT-10265 by @wwillard7800 in #2884
- Restored
outputDefaultSchema
andoutputDefaultCatalog
command arguments by @nvoxland in #2834 - Quote
liquibase.jar
path in bash launcher by @nvoxland in #2885 - Fix for working with Firebird 2 and newer versions. Fixes nullables and boolean type. by @mngsgoncalves in #2277
- Fixed issue if change changelog object is null by @kamalnigam in #2837
- Filter out license key strings for Hub communication DAT-10522 by @wwillard7800 in #2926
- Specify which parameter is missing in the error message by @bendem in #2567
- Split license information into OSS vs. Pro directories by @nvoxland in #2868
- Use the method
setBlob
to insert blob data by @xjodoin in #605 - Smooth out differences in "
./
" paths by @nvoxland in #2915 - Include inherited labels in DATABASECHANGELOG table by @nvoxland in #2870
- Restored OSGi headers by @nvoxland in #2924
- Working on better Git Bash console solution DAT-10230 by @wwillard7800 in #2882
- Close
InputStream
inSQLFileChange
(DAT-9855) by @StevenMassaro in #2920 - Support prepared statements for query by @fbiville in #2913
- Implement
NOT VALID
for Postgres databases by @coenvk in #2600
New Contributors
- @MichaelCkr made their first contribution in #2595
- @akatiyar made their first contribution in #2616
- @Cliftonz made their first contribution in #2785
- @reallyinsane made their first contribution in #2524
- @MartinRied made their first contribution in #2781
- @dwieland made their first contribution in #2656
- @mngsgoncalves made their first contribution in #2277
- @kamalnigam made their first contribution in #2837
- @bendem made their first contribution in #2567
- @xjodoin made their first contribution in #605
- @abrackx made their first contribution in #2934
- @coenvk made their first contribution in #2600