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

[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

[OSS]

  • Checksums upgraded to v9, which improves whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more.
    • No action is required of users to benefit from this enhancement
    • This release is backwards compatible with v8 checksums (found in 3.5 to 4.21.1 releases)
    • Console message will inform you when your checksums have been updated
  • Liquibase Hub de-commissioned and de-coupled from Liquibase operations. From 4.23.0 forward, Liquibase will make no Hub reporting attempts.

Breaking Changes

  • FOR MONGO DB EXTENSION USERS
    The Liquibase MongoDB OSS and PRO extension 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, please use the previous 4.x Mongo extension release.
  • OSS v 4.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 implement new method in ChangeLogHistoryService interface which may requires updates to your extension code.
  • For Pro users: a bug fix for users of BOTH update-one-changeset AND ignore=true in DAT-13516 (see below)
    • If you deploy with both these conditions, and have implemented a work-around, you should inspect your work-flow for potential changes.

[PRO] What's Changed

[OSS] What's Changed

  • Add binary, varbinary and longvarbinary support for Snowflake #4226
  • Liquibase should not fail when change log has only databaseChangeLog tag #4273
  • Add v8 and v9 checksum support (DAT-14872) @StevenMassaro #4310
  • Fix 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 not using imported classes and packages 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 command framework (DAT-6605) by @abrackx in #4238
  • Implement autorollback for and 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
  • Fix javadoc 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