Liquibase 4.23.0 release notes
Liquibase 4.23.0 is a major release.
See GitHub formatted release notes for more information. Full changelog: 4.22.0–4.23.0 (June 26, 2023)
Warning: For Liquibase Pro users of native executors, there are known issues deploying updates with this release. Please download and use Liquibase 4.23.2 release or newer.
Notable changes
Liquibase Pro
Introducing Custom and Private Data in Structured Logs. You can now include custom and pipeline-specific fields and exclude any private data for your Structured Logs and Liquibase operation data streams. Learn more here: Custom and Private Data in Structured Logs and custom-log-data-file.
The flow, history, status, and version commands have structured logging enhancements for improved compatibility with automated monitoring and analysis tools.
Learn more about Liquibase's observability and structured logging capabilities to generate more meaningful reports and dashboards at Liquibase Observability.
Liquibase Open Source
Checksums were upgraded to v9, which improved whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more. Users do not need to take any action to benefit from this enhancement. This release is backward compatible with v8 checksums (found in 3.5 to 4.21.1 releases). A console message will inform you when your checksums have been updated.
The Liquibase Hub has been decommissioned and decoupled from Liquibase operations. From 4.23.0 forward, Liquibase will not make Hub reporting attempts.
Breaking changes
For MongoDB extension users
The Liquibase MongoDB OSS and PRO extensions are major version releases compatible starting with Liquibase 4.23.0, and are not backward compatible with previous Liquibase versions.
For users of Liquibase core versions between 4.19.0 and 4.21.1, use the previous 4.x Mongo extension release.
Liquibase Open Source v4.23.0 MongoDB extension compatibility matrix
MongoDB extension version | Liquibase compatible version |
---|---|
MongoDB OSS extension v4.23.0 | Liquibase v4.23.0 |
MongoDB Pro extension v1.1.1 | Liquibase v4.23.0 |
MongoDB OSS extension v4.21.0 | Liquibase v4.19.0 - 4.21.1 |
MongoDB Pro extension v1.0.0 | Liquibase v4.19.0 - 4.21.1 |
For Developers of community-supported extension #4310: This implements a new method in the ChangeLogHistoryService interface, which may require updates to your extension code.
For Pro users: a bug fix for users of BOTH update-one-changeset AND ignore=true in DAT-13516. If you deploy with both these conditions and have implemented a workaround, you should inspect your workflow for potential changes.
Liquibase Pro. What's changed
Add or exclude custom user metadata to logs by @StevenMassaro in liquibase/liquibase-pro#956
DAT-13292: Decomission hub by @abrackx in liquibase/liquibase-pro#898 and #3996
DAT-14121: Add failOnError MDC and always show changesetOutcome MDC by @StevenMassaro in liquibase/liquibase-pro#945
DAT-12946: Disable snapshot generation for PRO objects for Redshift by @vitaliimak in liquibase/liquibase-pro#933
DAT-10024: Show MDC when running --version by @StevenMassaro in liquibase/liquibase-pro#969
DAT-14110: API ability to add user metadata to the Flow model by @wwillard7800 in liquibase/liquibase-pro#941
Test with Java 20 instead of 18 by @nvoxland in liquibase/liquibase-pro#964
DAT-13124: Finished with implementation of MDC for Flow command by @wwillard7800 in liquibase/liquibase-pro#954
DAT-14163: MDC for status command by @StevenMassaro in liquibase/liquibase-pro#979
DAT-14162: MDC for history command by @StevenMassaro in liquibase/liquibase-pro#981
DAT-6620: Refactors rollbackOneUpdate, rollbackOneUpdateSql, rollbackOneChangeset, rollbackOneChangesetSql to use the command framework by @abrackx in liquibase/liquibase-pro#991
DAT-13946 Fix issue with catalogName property not being honored by @wwillard7800 in liquibase/liquibase-pro#992
DAT-14804: Fix docs links by @StevenMassaro in liquibase/liquibase-pro#998
Fix/include_liquibase_version by @sayaliM0412 in liquibase/liquibase-pro#1010
DAT-13516: update-one-changeset command should ignore changesets with ignore=true set by @StevenMassaro in liquibase/liquibase-pro#997
DAT-13283: Improve join for snapshotting check constraints in MySQL by @StevenMassaro in liquibase/liquibase-pro#994
DAT-14807: Case-insensitive matching on keys by @StevenMassaro in liquibase/liquibase-pro#999
DAT-13037: For rollback not required changes, do not complain about EmptyChange by @wwillard7800 in liquibase/liquibase-pro#984
DAT-14283: Add SEARCH_PATH setting to run script for PsqlRunner by @wwillard7800 in liquibase/liquibase-pro#995
DAT-14897: Add check settings file DTO hidden parameter by @StevenMassaro in liquibase/liquibase-pro#1033
Liquibase Pro Change Type metadata by @adrian-velonis1 in liquibase/liquibase-pro#942
DAT-14307: Append keep.path to psql logFile property to create log files in temp directory by @abrackx in liquibase/liquibase-pro#1031
DAT-12478 by @sayaliM0412 in liquibase/liquibase-pro#1007
DAT-15167 by @sayaliM0412 in liquibase/liquibase-pro#1045
Liquibase Open Source. What's changed
Add binary, varbinary, and longvarbinary support for Snowflake #4226
Liquibase should not fail when the changelog has only a DATABASECHANGELOG tag #4273
Add v8 and v9 checksum support (DAT-14872) @StevenMassaro #4310
Fix the index descending column snapshot test by @wwillard7800 in #4251
Add failOnError MDC and always show changesetOutcome MDC (DAT-14121) by @StevenMassaro in #4158
DAT-12945: Support JSON logging in the maven plugin by @StevenMassaro in #4152
Show MDC when running --version (DAT-10024) by @StevenMassaro in #4218
For SQL Server, if a delimiter has not been specified, then add one. DAT-13998 by @wwillard7800 in #4202
Log when no changesets have been rolled back (DAT-11575) by @abrackx in #4209
[DAT-6608]: Refactors DropAll command as CommandStep by @filipelautert in #4171
Test with Java 20 instead of 18, as 18 is no longer supported by Oracle, by @nvoxland in #4208
SQL Anywhere was never owned by Siebel, but only by SAP, Sybase, Powersoft, Watcom. by @mkarg in #4178
Remove any classes and packages that are not used in the source file. by @arturobernalg in #3836
Replace if statements with switch statements. by @arturobernalg in #3720
Delete unused comment code. by @arturobernalg in #3666
Code clean up around isUpToDateFastCheck by @MalloD12 in #4016
Refactor db-doc command to use the command framework (DAT-6605) by @abrackx in #4238
Implement autorollback changes by @jccampanero in #4103
execute-sql command refactor (DAT-6609) by @abrackx in #4217
Fix "Running Changeset: " logs written directly to stdout instead of using the maven logger by @mensinda in #4157
Improve Javadoc. by @arturobernalg in #3841
Remove fields that are not used or unreachable from the entry points. by @arturobernalg in #3741
FixJavadoc references, links, and spaces. by @arturobernalg in #3768
Implement "author" command argument for diffChangelog command by @vitaliyg2 in #3990
Prefer ThreadLocalScopeManager when working with Maven by @rogierslag in #4037
Code cleanup: Avoid re-calling methods by @arturobernalg in #3721
Replace with Collections.singletonList(), Collections.emptyList(), or… by @arturobernalg in #3837
Add support for the TRAN keyword (T-SQL) by @AlexGruebel in #4099
Switch to distribute jars generated by Java 11, allowing Jakarta cdi 4 upgrade by @filipelautert in #4119
Refactor future-rollback-sql family of commands (DAT-6610, DAT-6611, DAT-6612) by @StevenMassaro in #4243
Refactor mark-next-changeset-ran command family (DAT-6615, DAT-6616) by @StevenMassaro in #4253
Add serialVersionUID to classes that implement Serializable. by @arturobernalg in #3680
MDC for status command (DAT-14163) by @StevenMassaro in #4259
Refactor validate command (DAT-6643) by @abrackx in #4281
Show MSSQL PRINT output by showing SQL Warnings if they exist DAT-8708 by @wwillard7800 in #4263
Add MDC for release locks outcome (DAT-14166) by @StevenMassaro in #4229
Refactor unexpected changesets command (DAT-6637) by @StevenMassaro in #4278
DAT-6632: Refactor snapshot-reference command by @StevenMassaro in #4262
Refactor update-testing-rollback command (DAT-6640) by @StevenMassaro in #4282
Make sure drop FK changes are first in the list generated by diffChangelog DAT-14101 by @wwillard7800 in #4272
Cleanup logging for releasing locks. by @abrackx in #4296