Skip to content

Liquibase v4.26.0

Compare
Choose a tag to compare
@liquibot liquibot released this 07 Feb 15:53
· 225 commits to release since this release
1f748a7

Liquibase 4.26.0 is a major release

Important

Liquibase 4.26.0 contains several Notable Changes for Liquibase Pro users: Advanced IF conditionals, Simpler Regex-based pattern checks, and Checks Run Reports.

Note

See the Liquibase 4.26.0 Release Notes for the complete set of release information.

Notable Changes

Liquibase Pro

Liquibase Flow: Advanced IF conditionals

  • In Liquibase flow files, use AND (&&), OR (||), and NOT (!) logic options, in single or grouped conditions, as well as substring matching and checking if a key or file exists.
  • Learn more https://docs.liquibase.com/flow

Quality Checks: Simpler Regex-based pattern checks

  • Check four advanced patterns without having to figure out the complicated regex needed to do it—just supply the patterns and Quality Checks will link and execute them.
  • Learn more https://docs.liquibase.com/quality-checks

Observability: Checks Run Reports

  • Understand and share the data on the execution of Quality Checks with a new Checks Run Report. Easily scan and understand your results with the summary section, Analyze your checks by viewing details by ChangeSet, by check, and by database. And collaborate with your team with shareable report.
  • Learn more https://docs.liquibase.com/observability

Formatted SQL changelogs can use rollback scripts

  • Previously, Formatted SQL ChangeLogs could only run in-line rollback commands. But, sometimes you need something more complex, like a full rollbackSqlFile. This functionality has been available for XML, JSON, and YAML formatted changelogs.
  • Learn more https://docs.liquibase.com/concepts/changelogs/sql-format.html

Liquibase Open Source and Liquibase Pro

Liquibase capability enhancements

  • The diffChangeLog command has been updated only to create a changelog when changes are detected. This is a change from the previous behavior of creating an empty changelog.
  • Adds new generateChangelog options:
    • --run-on-change-types=createView,createProcedure will set runOnChange="true" for each changeSet which contains solely createView and createProcedure changes. For backward compatibility, the default is an empty list.
    • --replace-if-exists=createView,createProcedure will set replaceIfExists="true" for each createView and createProcedure changes. For backward compatibility, the default is an empty list.
  • Fix a bug that previously included substituted properties in the checksum calculation for SQLFile change types

JDBC driver updates

  • MariaDB JDBC driver updated from 3.2.0 to 3.3.2
  • Snowflake JDBC driver updated from 3.14.3 to 3.14.4
  • Firebird SQL JDBC driver updated from 5.0.2.java8 to 5.0.3.java8
  • SQLite JDBC driver updated from 3.43.2.2 to 3.44.1.0

Database platform improvements

General
  • Adds create table if not exists support for the following databases: CockroachDB, DB2 LUW, H2, HSQL, Informix, Ingres9, MariaDB, MySQL, Postgres, and SQLite.
  • Fix the generated default column value in PostgreSQL and Oracle for char/clob data types.
Maria DB
  • Adds Liquibase support for Maria DB 10.10.6 and later's new UUID data type.
  • For boolean columns on MariaDB, revert the change made in Liquibase 4.25.1. It has been returned from TINYINT back to TINYINT(1).
DB2 z/OS
  • Improves support for the empty table precondition.

Java API Changes

  • AbstractJdbcDatabase now 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 which enables the management of transaction commits.
  • Failure exceptions in ChangeSet.execute are now logged as a SEVERE level for easier access to a concise error message.

Changelog

[PRO] Changelog

🤖 [PRO] Security, Driver and Other Updates

1 change * Bump com.oracle.database.jdbc:ojdbc8 from 19.20.0.0 to 19.21.0.0 #1339 by dependabot bot

[OSS] Changelog

🚀 New Features

Changes

🐛 Bug Fixes 🛠

  • (#5522) MariaDB boolean: back to TINYINT(1) instead of TINYINT (MySQL) @famod
  • (#5524) Don't execute CustomSqlChanges to generate logs @Alf-Melmac
  • (#5498) Add missing OSGI settings @filipelautert
  • (#5391) fix SQLFileChange.generateCheckSum() to calculate checksum without property substitution @jglass524
  • (#5398) Fix issue #3516 addColumn ignores deleteCascade=true @andreiyusupau
  • (#5479) do not skip over duplicate tags when doing rollback (DAT-16277) @StevenMassaro
  • (#5484) Workaround failing test containers startup for mysql by falling back to previous version. @abrackx
  • (#5397) Fix DatabaseFactory db loading when Database implementation is specified (fix for Issues 5371 & 5396 ) @dhsmith1001
  • (#5202) 4464 fix generated default column value using in PostgreSQL and Oracle for char/clob data types @LonwoLonwo
  • (#5350) Fix getSerializableFieldValue when dealing with rollback object @MalloD12
  • (#5414) Fix NPE in generateChangelog and diffChangelog DAT-16534 @wwillard7800
  • (#5267) fix #5266: comma separated dbms-attribute for createProcedure-change triggers validation-check @jclohmann

🤖 Security, Driver and Other Updates

17 changes

Participate in the Community

Get Certified

Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.

Read the Documentation

Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.

Meet the Community

Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:

Thanks to everyone who helps make the Liquibase community strong!

File Descriptions

  • Liquibase CLI -- Includes open source + commercial functionality
  • liquibase-x.y.z.tar.gz -- Archive in tar.gz format
  • liquibase-x.y.z.zip -- Archive in zip format
  • liquibase-windows-x64-installer-x.y.z.exe -- Installer for Windows
  • liquibase-macos-installer-x.y.z.dmg -- Installer for MacOS
  • Primary Libraries - For embedding in other software
    • liquibase-core-x.y.z.jar – Base Liquibase library (open source)
    • liquibase-commerical-x.y.z.jar – Additional commercial functionality
  • liquibase-additional-x.y.z.zip – Contains additional, less commonly used files
    • Additional libraries such as liquibase-maven-plugin.jar and liquibase-cdi.jar
    • Javadocs for all the libraries
    • Source archives for all the open source libraries
    • ASC/MD5/SHA1 verification hashes for all files