Skip to content

v4.9.0

Compare
Choose a tag to compare
@nvoxland nvoxland released this 17 Mar 17:17
· 2505 commits to master since this release
2330bc4

Liquibase 4.9.0 release

Please report any issues to https://github.com/liquibase/liquibase/issues.

Notable Changes

Liquibase 4.9.0 introduces the following functionality:

  • [PRO] Quality Checks JSON object so that your application can easily parse through the Liquibase output [DAT-9094]
    For more information, see Quality Checks JSON Object.
  • [PR#2558] [kavya-shastri] [Breaking Change]The change in the usage of the Liquibase global configuration for the secureParsing parameter to prevent the entity resolver from scanning the network for missing XSDs. If you reference an XSD other than one from Liquibase and have never stored them in your classpath, Liquibase will no longer automatically download and use the XSD from the internet for security reasons. The default value for secureParsing is true, but you can set it to false in any of the Liquibase configuration locations. For more information, see XSD support.
  • [PR#2529] [Krzysztof Sierszeń] [LB-1781] The uniqueConstraintExists precondition to check for the existence of unique constraints before running the update. You can check the constraint by constraint name or columns:
<preConditions>
    <uniqueConstraintExists constraintName="uq_constraint_name" tableName="test_table"/>
</preConditions>
<preConditions>
    <uniqueConstraintExists tableName="test_table" columnNames="first_name, last_name"/>
</preConditions>
  • [PR#2339] [nvoxland] [Toukite] The support for running the Liquibase Servlet listener in application servers built on the Jakarta Servlet specification and not the Java Servlet specification. To use the new listener, specify the following tag:
<listener>
    <listener-class>liquibase.integration.servlet.LiquibaseJakartaServletListener</listener-class>
</listener>

The PR fixes issue #2298.

Enhancements

  • [PR#2434] [Balázs Dési] Added the Maven validate goal to maven-liquibase-plugin to provide access to the existing Liquibase validate command and be available not only in CLI, but also in Maven
    For more information, see Maven validate.
  • Added the ability to use sqlcmd on an instance with multiple databases [DAT-9513]
    For more information, see Using the SQLCMD integration and runWith attribute with Liquibase Pro and MSSQL Server.
  • Added support for Liquibase, Spring Boot, and SQL Plus run with Kerberos [DAT-9409]
    For more information, see Using Liquibase and Spring Boot with SQL Plus and Kerberos Authentication.
  • [PR#2561] [Wesley Willard] Added the --schemas argument to the snapshot command to be able to compare a multi-schema database to its snapshot [DAT-9433]
  • [PR#2606] [Wesley Willard] Added a best practice message for the generate-changelog command so that you can check if the splitStatements attribute works for your environment when generating formatted SQL changelogs [DAT-9327]
  • Added the StripComments attribute for the SQLUserDefinedPatternCheck quality check to choose the code that the SQLUserDefinedPatternCheck searches, including the option for the commented code. The StripComments attribute strips comments from SQL before searching for the string. The default value is N (no). [DAT-9098]
  • [PR#2273] [Tsvi Zandany] Added the autocomplete option for quality checks commands running on macOS

Fixes

  • [PR#2542] [nvoxland] Fixed the --should-snapshot-data CLI parameter to be preserved when the --data-output-directory property is not specified in the command
  • [PR#2330] [Inane Mohammed] Fixed the issue with checking the referenceSnapshot parameter instead of referenceDatabase for the potential null value
  • [PR#2521] [Steven Massaro] Added a label, context, and comment to the example-changelog.sql file that comes with the Liquibase installation package [DAT-9325]
  • [PR#2556] [nvoxland] Fixed the CockroachDB processes so that Liquibase checks the URL first rather than proceeding with SQL calls
  • [PR#2569] [Clarence Dimitri CHARLES] Made FormattedSqlChangeLogParser to be reusable for extensions
  • [PR#2377] [devorgpl] Fixed the issue with updating statements when the onlyUpdate attribute is false in the loadUpdateData Change Type for HSQL
  • [PR#1908] [Emiliano Capoccia] Fixed the issue with retrieving the CockroachDB version. As part of the fix, Liquibase generates version-specific autoincrement SQL statements for CockroachDB identity columns:
    • SMALLSERIAL, SERIAL, and BIGSERIAL for versions earlier than 21.2
    • GENERATED BY DEFAULT AS IDENTITY for version 21.2 or later
  • [PR#2135] [PR#2133] [Saucistophe] [mkobylarz] Fixed the issue with the endDelimiter attribute not being respected during the Liquibase update. The fix for endDelimiter does not break the handling of trailing comments in SQL statements. [LB-2186]
  • [PR#2573] [nvoxland] Fixed the quoting for the MANIFEST.MF file for correct versioning
  • [PR#2572] [Steven Massaro] Fixed the issue with generating changelogs for PostgreSQL columns that use SET DEFAULT [DAT-8779]
  • [PR#2589] [nvoxland] [Marcel Blonk] Fixed the MD5 checksums generated by older versions of Liquibase to be correctly updated in the DATABASECHANGELOG table when a more recent version of Liquibase executes against the database. The PR fixes issue #2580.
  • [PR#2592] [nvoxland] Added support for the double precision type in MySQL. The PR fixes issue #2337.
  • [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes issue #1774.
  • [PR#2387] [Jenson3210] Fixed the handling of date and time in the loadData Change Type
  • [PR#2566] [nvoxland] Updated OpenCSV from 5.5.2 to 5.6

Full Changelog: v4.8.0...v4.9.0

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:

Our first-time contributors

Thanks to everyone who helps make the Liquibase community strong!