Liquibase 4.27.0 release notes
Liquibase 4.27.0 is a major release. Liquibase 4.27.0 contains several new capabilities and notable enhancements for Liquibase Pro users: DATABASECHANGELOGHISTORY table, Policy Checks Chains, and the rollback report.
See GitHub formatted release notes for more information. Full changelog: 4.26.0–4.27.0 (March 27, 2024)
Breaking change
(#5584) Throws an exception if drop all fails (DAT-16718) @StevenMassaro
Notable changes
Liquibase Pro
Liquibase DATABASECHANGELOGHISTORY table: See all changes that have been applied to your database
With the new DatabaseChangeLogHistory (DBCLH) Table, get a complete history of changes made to your database through Liquibase operations, including updates, rollbacks, dropAlls, tags, changelogSyncs, and repeated updates to the same changeset. The DBCLH table is disabled by default, so users must turn it on to start capturing historical data.
Learn more: DATABASECHANGELOGHISTORY table.
Policy Checks Chains: Perform multiple policy evaluations with a single policy check
Chain multiple policy checks with logic conditionals (AND, OR, and NOT) for more flexibility in performing multiple evaluations in a single check. Useful to confirm complex best practices or governance issues. Check chains are run like traditional single-condition existing policy checks.
Learn more: Check chains.
Observability: Rollback reports: Understand and share the data on the execution of rollback commands
Easily scan and understand a high-level overview of the changesets rolled back. Get a detailed view of both successful and failed rollbacks. Improve team collaboration with a shareable report in PDF format.
Learn more: Rollback report
Liquibase Open Source and Liquibase Pro
Liquibase capability enhancements
Added support for
tableExists
andviewExists
preconditions in formatted SQL changelogs. (#5456)Added
showSummary
andshowSummaryOutput
to the MavenupdateSql
andupdateTestingRollback
goals (#5592)Expanded mapping of UTF-8 symbols to "anything between \u00A1-\uFF65 that wasn't specified as a letter before". This should prevent errors of unknown UTF-8. (#5506)
When running
diffChangeLog
and no changes are detected, Liquibase no longer creates an empty changelog file. (#5164)Added a new
ifNotExists
Change Type attribute forcreateTable
. (#3581)Checksum calculation now occurs before property substitution. (#5391)
The
addColumn
change type now supports thedeleteCascade=true
attribute. (#5398)Various performance improvements (#5670, #5530, #5530)
Database platform improvements
SQL Anywhere
--run-on-change-types=createView,createProcedure
will setrunOnChange="true"
for each changeset which contains solelycreateView
andcreateProcedure
changes. (#4635)--replace-if-exists=createView,createProcedure
will setreplaceIfExists="true"
for eachcreateView
andcreateProcedure
change. (#4635)
Maria DB
The Maria DB UUID type is returned for MariaDB version 10.7 or greater. (#5274)
MariaDB boolean columns reverted
TINYINT
toTINYINT(1)
, like it was before Liquibase 4.25.1. (#5522)
DB2 for z/OS
Adds Empty Table precondition support for DB2[z]. (#5043)
JDBC driver updates
Postgresql JDBC Driver to 42.7.3
Oracle JDBC Driver updated to 19.22.0.0
MariaDB JDBC driver updated to 3.3.3
SqlServer JDBC driver updated to 12.6.1.jre8
Java API
A new optional interface,
CustomChangeChecksum
lets you override the default checksum calculation for a specific change. (#5649)Adds support for
runWith
executors committing after the changeset completes. TheAbstractJdbcDatabase
delegates the execution of changes to the executor, which allows the executor more control over how changes are executed. This gives executors access to changes and changesets to manage their transaction commits. (#5329)Change subclasses now support primitive types, particularly for custom change fields. (#5360)