Download Latest Version liquibase-core-5.0.1.jar (3.1 MB)
Email in envelope

Get an email when there's a new version of Liquibase

Home / v4.32.0
Name Modified Size InfoDownloads / Week
Parent folder
liquibase-4.32.0.zip 2025-05-21 353.3 MB
liquibase-4.32.0.tar.gz 2025-05-21 353.2 MB
liquibase-additional-4.32.0.zip 2025-05-21 10.8 MB
liquibase-commercial-4.32.0.jar 2025-05-21 6.3 MB
liquibase-azure-deps-4.32.0.jar 2025-05-21 21.6 MB
liquibase-windows-x64-installer-4.32.0.exe 2025-05-21 405.8 MB
liquibase-core-4.32.0.jar 2025-05-21 3.2 MB
Liquibase v4.32.0 source code.tar.gz 2025-05-21 6.7 MB
Liquibase v4.32.0 source code.zip 2025-05-21 9.0 MB
README.md 2025-05-21 60.7 kB
Totals: 10 Items   1.2 GB 3

Liquibase 4.32.0 is a major release

[!NOTE] See the Liquibase 4.32.0 Release Notes for the complete set of release information.

[!IMPORTANT] ⚠️ [PRO] and [OSS] Upcoming Change in Distributions Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its Open Source (OSS) and PRO offerings. This change is designed to ensure that each distribution is optimized for its respective users—providing open-source users with flexibility and control, while delivering scalability, reliability, and governance for enterprise teams. The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments. Liquibase 4.32.0 introduces the first general availability (GA) release of independently packaged Pro distributions, along with dedicated distribution channels and key-based access enforcement for Pro capabilities. This marks a significant step toward delivering a curated, enterprise-grade experience for Pro users. The OSS distribution and its delivery channels remain unchanged in this phase. Learn more

Notable Changes

[PRO]

Policy Checks

Formatted SQL Header Policy Check. Introduced a new policy check named FormattedSqlHeaderRequired to ensure that.sql files included in changelogs begin with the required --liquibase formatted sql header. This check helps prevent improperly formatted SQL changes that could bypass Liquibase’s change tracking, auditing, and rollback features. This new policy check supports changelogs of any format (SQL, XML, YAML, JSON) and includes an EXCEPTIONS_LIST customization option to exclude specific files. When triggered, it lists all offending .sql files missing the required header, helping maintain the integrity and reliability of database change management. [DAT-19042]

Get Config Value Helper Function for Python Checks. Added a new helper function, liquibase_utilities.get_config_value(), for custom Python checks. This function enables easy access to standard Liquibase configuration properties—including those set via environment variables, CLI arguments, or defaults files. This enhancement simplifies scripting by allowing users to retrieve values such as url, loglevel, changelogfile, and custom properties like dbplatform or contexts directly within their Python checks, without manually resolving property names or sources. [DAT-19486]

Property Substitution in Python Check Script Arguments. Enhanced support for custom Python checks by allowing the use of Liquibase properties in the SCRIPT_ARGS section. Users can now reference properties—such as environment variables, CLI arguments, or values from the defaults file—using standard substitution syntax (e.g., ${liquibase.command.url} or ${PIPELINE_NAME}). This enables dynamic and context-aware scripting, such as configuring behavior based on runtime attributes like the current Git branch or target environment. [DAT-19377]

Absolute Path for Custom Python Policy Checks. Updated custom policy check support to allow Python script paths to be specified using absolute paths, in addition to relative paths. This enhancement enables users to store and reference custom check scripts from centralized or shared directories outside the local project repository, eliminating the need to duplicate scripts across multiple projects. This improves flexibility and promotes better reuse and maintenance of custom policy checks across teams and environments. [DAT-19408]

Audit and History

DBCLH History Command for MongoDB and DynamoDB. Added support for the liquibase dbcl-history command for MongoDB and DynamoDB users, enabling access to the DatabaseChangeLogHistory (DBCLH) table. This Liquibase Pro command outputs each DBCLH row as a JSON object, making it easy to integrate with BI and analytics tools. Users can customize output with --format=json|JSON_PRETTY and --verbose to control the level of detail in capturedsql and extensions fields. Output defaults to console but can be redirected to a file using --outputfile. [DAT-17162], [DAT-17164]

Observability and Reports

Drift Report Support for MongoDB Family. Liquibase Pro now supports Drift Report generation for the MongoDB database family, including MongoDB Atlas and AWS DocumentDB. This enhancement allows DevOps and SRE teams to detect schema drift and compare MongoDB instances using the same familiar workflow as relational databases. Drift Reports now include MongoDB-specific snapshot and diff outputs, while omitting or clearly marking relational-only fields as "Not Applicable for Mongo-type Databases." This feature enables consistent configuration checks across distributed NoSQL environments and helps ensure alignment between instances of application data stores. [INT-871]

Enhanced Drift Report Connection Detail. Improved drift reports generated by the liquibase diff command by including complete connection details. Source and target URLs now display full catalog and schema names—particularly valuable for platforms like Databricks—allowing users to accurately identify and distinguish the environments being compared. This enhancement provides greater clarity and helps streamline the process of reviewing and resolving discrepancies. [DAT-18910]

Sensitive SQL Content Suppression in Operational Reports. Added a new global --reports-suppress-sql option to prevent sensitive SQL content—such as passwords—from appearing in operational reports and CLI output (e.g., during update-sql or drift report generation). This setting helps improve security and reduce noise in reports, especially in CI/CD pipelines like Jenkins. When enabled, SQL output is replaced with a placeholder message (SQL suppressed). An optional companion flag, --reports-suppress-exceptions, controls whether SQL appears in error messages. It is automatically set to true when --reports-suppress-sql is enabled, unless explicitly overridden. Both flags are configurable via CLI, environment variables, or properties files. [DAT-19076]

Security

Kerberos Passwordless Authentication for runWith:psql. Liquibase Pro now supports Kerberos passwordless authentication with the runWith:psql native executor, enabling secure, credential-free connections in environments where plain user/password secrets are restricted. This enhancement ensures compatibility with Active Directory/Kerberos authentication workflows while preserving full functionality, including the generation of log spool files as configured in liquibase.psql.conf. Both Kerberos and non-Kerberos environments continue to be supported, ensuring seamless transitions and enhanced security compliance. [DAT-19525]

Simplified Snowflake OAUTH and PKI Authentication Support. Liquibase Pro now supports Snowflake OAUTH and Private Key Infrastructure (PKI) authentication through new dedicated properties, eliminating the need for manual JDBC URL customization in most cases. This enhancement ensures compliance with Snowflake’s upcoming requirement for token-based authentication (effective November 2025) and simplifies secure connectivity for all Snowflake users. Sensitive authentication details—such as tokens, private key paths, and passphrases—can now be provided via Liquibase properties with standard handling for logging and reporting, helping users adopt modern authentication methods with less complexity and greater security. [INT-190], [INT-182]

Workflow Automation

Conditional Flow File Logic Based on Action Exit Codes. Liquibase Pro now supports conditional flow file logic based on action exit codes, enabling more flexible and resilient automation. A new continueOnError property (default: false) allows flows to proceed even when an individual action fails. Additionally, the new exitCode value captures the exit code of the previous action. This allows users to write conditional logic (e.g., if: "exitCode <= 1") directly within flow files. This enhancement empowers users to handle errors and successes gracefully within a single flow, rather than halting execution entirely. [DAT-19490]

Change Automation

Composite Type Objects in PostgreSQL Support. Liquibase now supports Composite TYPE objects in PostgreSQL, enabling users to manage these objects more effectively. This feature allows users to create and drop Composite Types using Liquibase change types, with support for XML, YAML, and JSON formats. Auto-rollback functionality is also included for these change types, ensuring smooth execution and rollback. This enhancement fills the gap in PostgreSQL object support and provides a valuable tool to manage complex PostgreSQL data types with Liquibase. [INT-173], [INT-175]

PostgreSQL Composite Type Schema Change Support. Liquibase Pro now supports the changeCompositeTypeSchema change type for PostgreSQL, enabling users to manage schema changes for composite Type objects. This enhancement fills a gap in Postgres object support by allowing ALTER operations to move a Type between schemas. The change type is available in all modeled formats (XML, YAML, JSON) and includes auto-rollback functionality. [INT-1268]

PostgreSQL Composite Type Ownership Change Support. Liquibase Pro now supports altering the ownership of Composite Type objects in PostgreSQL through a new changeCompositeTypeOwner change type. This feature allows users to manage ownership changes using modeled formats (XML, YAML, and JSON), expanding Liquibase’s support for advanced PostgreSQL object types. Auto-rollback is not supported because the current owner cannot be determined. [INT-1266]

PostgreSQL Composite Type Rename Support. Liquibase Pro now supports renaming PostgreSQL Composite Type objects using a new renameCompositeType change type. This enhancement enables users to manage changes to complex data structures more effectively by allowing type renaming via modeled formats (XML, YAML, and JSON). Auto-rollback is fully supported, ensuring safe and reversible changes. [INT-1267]

Optional Primary Key Support for DBCL Table in MySQL. Liquibase Pro now includes a configurable property, --mysql-enable-dbcl-primary-key to optionally add a primary key to the DATABASECHANGELOG (DBCL) table during initial creation in MySQL databases. When the toggle is enabled, Liquibase will create the DBCL table with a primary key if it does not already exist. If the DBCL table exists without the key, Liquibase halts and provides instructions for manual correction. Conversely, if the table already includes the key and the toggle is disabled, Liquibase proceeds with an informational message. This ensures compatibility with replication tools while maintaining operational flexibility. [INT-169], [INT-170]

Other Updates

Anonymous Analytics (New Pro Distribution Only). Liquibase Pro 4.32.0 updates the default behavior for anonymous usage analytics. Analytics are now enabled by default for new Liquibase Pro distribution users. These analytics help the Liquibase team improve the product by collecting aggregated, non-PII data such as command usage, error rates, database types, Java versions, and Liquibase feature adoption. Analytics are only captured when a command is run, and users can opt in or out at any time using the --analytics-enabled global parameter. This allows organizations to maintain control over data sharing in alignment with internal policies.

Liquibase Pro Software Bill of Materials (New Pro Distribution Only). Liquibase Pro introduces Liquibase Pro SBOM, machine-readable Software Bill of Materials (SBOM) files bundled with every Liquibase Pro release. Provided in both CycloneDX and SPDX JSON formats, these SBOMs give enterprise teams full transparency into included packages, versions, licenses, dependencies, and checksums—helping meet regulatory compliance (e.g., EO 14028, FedRAMP, SOC 2), support vendor risk reviews, and streamline audits. No extra setup or CLI steps are required—SBOMs are automatically included with each release, ensuring teams stay secure and audit-ready by default. [DAT-20209]

[OSS]

OSS Notable Changes

NoSql Snapshot improvements. The previous snapshot capability allowed only one Generator as top level for the chain. With this release, the chain handler has been enhanced to ensure all subscribed generators are called. (#5775)

Snowflake timestamp improvements. This release fixes breaks and provides enhanced messaging for time, datetime, and timestamp types (such as timestamp_ntz) in Snowflake changesets. (#6742)

[PRO] Changelog

🚀 New Features

🐛 Bug Fixes 🛠

🤖 Security, Driver and Other Updates

[OSS] Changelog

💥 Breaking Changes

  • None

🚀 New Features

  • (#6921) INT-1249: refactored StringSnapshotSerializerReadable to be able to extend expandable and skipped object types from Pro and Extensions. @SvampX
  • (#6899) feat: Improve Command Definition Internal Status Inheritance @filipelautert
  • (#6905) feat: Rename misleading update methods in Liquibase class @filipelautert
  • (#6866) feat: add support for default value sequence next to hsqldb @filipelautert
  • (#6798) Database support custom method escapeForLike @ThisOldDog
  • (#6898) INT-170: extracted getCreateTableStatement in separate method to enable composite PK for MySQL DBCL table. @SvampX
  • (#6807) [DAT-19654] made fields in AbstractFormattedChangeLogParser constants to reuse in util classes @KushnirykOleh
  • (#6693) add maven profile to build minimal distributions (DAT-19476) @StevenMassaro
  • (#6835) feat: new tagDatabase parameter to keep tag on rollback @filipelautert
  • (#5775) feat: improve snapshot generation for NOSQL databases @filipelautert
  • (#6694) Show message and exit if user attempts to use Azure without extension DAT-19430 @wwillard7800
  • (#6801) reduce number of API calls for analytics by caching events (DAT-19789) @StevenMassaro
  • (#6806) [DAT-19691] Code refactorings to fix sonar issues @MalloD12
  • (#6781) [DAT-18971] gzip log files if log-file parameter ends in .gz @StevenMassaro
  • (#6744) 6743: support the Arabic character "Kasra" @Eraoui909
  • (#6774) Use hasIgnoreNested method for all database preconditions @wwillard7800
  • (#6780) Added method to return the original path for a Resource @wwillard7800
  • (#6679) Improves MDC logging by database-specific command formatting @CharlesQueiroz
  • (#6706) Only report rows affected for DML statements @wwillard7800
  • (#6710) Handle changes skipped due to OS mismatch DAT-19334 @wwillard7800

🐛 Bug Fixes 🛠

  • (#6900) INT-185 - Solving the situation where the customer tries to connect t @CharlesQueiroz
  • (#6838) Upon Evaluation of changeLogPropertyDefinied precondition also include local properties of nested changesets. @2fxprogeeme
  • (#6875) Fix Oracle regression from splitStatements:false change DAT-19983 @wwillard7800
  • (#6872) fix: change String[] to List\<String> in COMMAND_DEFINITIONS cache @FatovDI
  • (#6860) fix: Prevent duplicate entries in databasechangelog with runAlways and onFail="MARK_RAN" @filipelautert
  • (#6867) fix: resource path resolution inside JAR files @filipelautert
  • (#6869) Test fixes for path issue @wwillard7800
  • (#6833) Default splitStatements to false for formatted SQL generation DAT-19702 @wwillard7800
  • (#6808) Date with timezone formats added. @MalloD12
  • (#6800) Pass CHANGELOG ARG to scope of changelogSync command @fido-node
  • (#6755) Fix handling of PostgreSQL uppercase catalog names after v42.7.5 driver changes @MalloD12
  • (#6830) fix: exclude duplicated dependencies provided by opencsv @filipelautert
  • (#6826) fix [#5197]: Ensure contexts from properties object are not ignored @filipelautert
  • (#6825) fix multiline select statements in execute-sql (DAT-19722) @StevenMassaro
  • (#6818) excluded junit from commons-collections4 @KushnirykOleh
  • (#6795) re-add headers to -sql commands (DAT-18306) @StevenMassaro
  • (#6806) DAT-19691 :: Code refactorings to fix sonar issues @MalloD12
  • (#6802) Fix snapshot for MSSQL decimal sequences (DAT-19504) @abrackx
  • (#6787) For SQL Server, sync up the backing index for PK and UC to the one that is auto-generated DAT-19267 @wwillard7800
  • (#6793) fix: classpath expression should also work when it is separated by an empty space instead of an = @filipelautert
  • (#6745) Fix foreignKeyConstraintExists precondition when constraint already exists in the DB @MalloD12
  • (#6753) fix liquibase-cli dependencies when deploying to Maven Central @filipelautert
  • (#6764) Do not include size on user defined types (DAT-19150) @abrackx
  • (#6596) Make the logChannels property work DAT-19296 @wwillard7800
  • (#6752) Fix LoadData issues for CLOB Values Containing Invalid File Path Characters @filipelautert
  • (#6674) Fix concurrency issues in multithread environments @filipelautert
  • (#6751) avoid NPE when analytics config issue occurs (DAT-19472) @StevenMassaro
  • (#6770) Revert weld-se-core upgrade @abrackx
  • (#6727) improve/fix snowflake view generation SQL @filipelautert
  • (#6750) DAT-18499 Log level changed when specifying driver on the CLI @MalloD12
  • (#6560) Add DiffOutputControl support for specifying a data directory argument @MalloD12
  • (#6692) Snapshot all configuration values for Oracle sequences @marchof
  • (#6663) Close ResultSet to prevent leaking it @ahus1

🤖 Security, Driver and Other Updates

  • (#6928) chore(deps): bump com.opencsv:opencsv from 5.10 to 5.11 by @dependabot
  • (#6857) chore(deps): bump org.projectlombok:lombok from 1.18.36 to 1.18.38 by @dependabot
  • (#6747) chore(deps-dev): bump org.jboss.weld.se:weld-se-core from 5.1.3.Final to 6.0.1.Final by @dependabot
  • (#6741) Fix/generate-oss-pro-sbom-reports @sayaliM0412

Full Changelog: https://github.com/liquibase/liquibase/compare/v4.31.0...v4.32.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/.

Join 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:

Contribute code Make doc updates Help by asking and answering questions Join our Discord server Sign up to provide feedback to the product team

Thanks to everyone who helps make Liquibase better!

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
  • 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## Liquibase 4.32.0 is a major release

[!NOTE] See the Liquibase 4.32.0 Release Notes for the complete set of release information.

[!IMPORTANT] ⚠️ [PRO] and [OSS] Upcoming Change in Distributions Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its Open Source (OSS) and PRO offerings. This change is designed to ensure that each distribution is optimized for its respective users—providing open-source users with flexibility and control, while delivering scalability, reliability, and governance for enterprise teams. The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments. Liquibase 4.32.0 introduces the first general availability (GA) release of independently packaged Pro distributions, along with dedicated distribution channels and key-based access enforcement for Pro capabilities. This marks a significant step toward delivering a curated, enterprise-grade experience for Pro users. The OSS distribution and its delivery channels remain unchanged in this phase. Learn more

Notable Changes

[PRO]

Policy Checks

Formatted SQL Header Policy Check. Introduced a new policy check named FormattedSqlHeaderRequired to ensure that.sql files included in changelogs begin with the required --liquibase formatted sql header. This check helps prevent improperly formatted SQL changes that could bypass Liquibase’s change tracking, auditing, and rollback features. This new policy check supports changelogs of any format (SQL, XML, YAML, JSON) and includes an EXCEPTIONS_LIST customization option to exclude specific files. When triggered, it lists all offending .sql files missing the required header, helping maintain the integrity and reliability of database change management. [DAT-19042]

Get Config Value Helper Function for Python Checks. Added a new helper function, liquibase_utilities.get_config_value(), for custom Python checks. This function enables easy access to standard Liquibase configuration properties—including those set via environment variables, CLI arguments, or defaults files. This enhancement simplifies scripting by allowing users to retrieve values such as url, loglevel, changelogfile, and custom properties like dbplatform or contexts directly within their Python checks, without manually resolving property names or sources. [DAT-19486]

Property Substitution in Python Check Script Arguments. Enhanced support for custom Python checks by allowing the use of Liquibase properties in the SCRIPT_ARGS section. Users can now reference properties—such as environment variables, CLI arguments, or values from the defaults file—using standard substitution syntax (e.g., ${liquibase.command.url} or ${PIPELINE_NAME}). This enables dynamic and context-aware scripting, such as configuring behavior based on runtime attributes like the current Git branch or target environment. [DAT-19377]

Absolute Path for Custom Python Policy Checks. Updated custom policy check support to allow Python script paths to be specified using absolute paths, in addition to relative paths. This enhancement enables users to store and reference custom check scripts from centralized or shared directories outside the local project repository, eliminating the need to duplicate scripts across multiple projects. This improves flexibility and promotes better reuse and maintenance of custom policy checks across teams and environments. [DAT-19408]

Audit and History

DBCLH History Command for MongoDB and DynamoDB. Added support for the liquibase dbcl-history command for MongoDB and DynamoDB users, enabling access to the DatabaseChangeLogHistory (DBCLH) table. This Liquibase Pro command outputs each DBCLH row as a JSON object, making it easy to integrate with BI and analytics tools. Users can customize output with --format=json|JSON_PRETTY and --verbose to control the level of detail in capturedsql and extensions fields. Output defaults to console but can be redirected to a file using --outputfile. [DAT-17162], [DAT-17164]

Observability and Reports

Drift Report Support for MongoDB Family. Liquibase Pro now supports Drift Report generation for the MongoDB database family, including MongoDB Atlas and AWS DocumentDB. This enhancement allows DevOps and SRE teams to detect schema drift and compare MongoDB instances using the same familiar workflow as relational databases. Drift Reports now include MongoDB-specific snapshot and diff outputs, while omitting or clearly marking relational-only fields as "Not Applicable for Mongo-type Databases." This feature enables consistent configuration checks across distributed NoSQL environments and helps ensure alignment between instances of application data stores. [INT-871]

Enhanced Drift Report Connection Detail. Improved drift reports generated by the liquibase diff command by including complete connection details. Source and target URLs now display full catalog and schema names—particularly valuable for platforms like Databricks—allowing users to accurately identify and distinguish the environments being compared. This enhancement provides greater clarity and helps streamline the process of reviewing and resolving discrepancies. [DAT-18910]

Sensitive SQL Content Suppression in Operational Reports. Added a new global --reports-suppress-sql option to prevent sensitive SQL content—such as passwords—from appearing in operational reports and CLI output (e.g., during update-sql or drift report generation). This setting helps improve security and reduce noise in reports, especially in CI/CD pipelines like Jenkins. When enabled, SQL output is replaced with a placeholder message (SQL suppressed). An optional companion flag, --reports-suppress-exceptions, controls whether SQL appears in error messages. It is automatically set to true when --reports-suppress-sql is enabled, unless explicitly overridden. Both flags are configurable via CLI, environment variables, or properties files. [DAT-19076]

Security

Kerberos Passwordless Authentication for runWith:psql. Liquibase Pro now supports Kerberos passwordless authentication with the runWith:psql native executor, enabling secure, credential-free connections in environments where plain user/password secrets are restricted. This enhancement ensures compatibility with Active Directory/Kerberos authentication workflows while preserving full functionality, including the generation of log spool files as configured in liquibase.psql.conf. Both Kerberos and non-Kerberos environments continue to be supported, ensuring seamless transitions and enhanced security compliance. [DAT-19525]

Simplified Snowflake OAUTH and PKI Authentication Support. Liquibase Pro now supports Snowflake OAUTH and Private Key Infrastructure (PKI) authentication through new dedicated properties, eliminating the need for manual JDBC URL customization in most cases. This enhancement ensures compliance with Snowflake’s upcoming requirement for token-based authentication (effective November 2025) and simplifies secure connectivity for all Snowflake users. Sensitive authentication details—such as tokens, private key paths, and passphrases—can now be provided via Liquibase properties with standard handling for logging and reporting, helping users adopt modern authentication methods with less complexity and greater security. [INT-190], [INT-182]

Workflow Automation

Conditional Flow File Logic Based on Action Exit Codes. Liquibase Pro now supports conditional flow file logic based on action exit codes, enabling more flexible and resilient automation. A new continueOnError property (default: false) allows flows to proceed even when an individual action fails. Additionally, the new exitCode value captures the exit code of the previous action. This allows users to write conditional logic (e.g., if: "exitCode <= 1") directly within flow files. This enhancement empowers users to handle errors and successes gracefully within a single flow, rather than halting execution entirely. [DAT-19490]

Change Automation

Composite Type Objects in PostgreSQL Support. Liquibase now supports Composite TYPE objects in PostgreSQL, enabling users to manage these objects more effectively. This feature allows users to create and drop Composite Types using Liquibase change types, with support for XML, YAML, and JSON formats. Auto-rollback functionality is also included for these change types, ensuring smooth execution and rollback. This enhancement fills the gap in PostgreSQL object support and provides a valuable tool to manage complex PostgreSQL data types with Liquibase. [INT-173], [INT-175]

PostgreSQL Composite Type Schema Change Support. Liquibase Pro now supports the changeCompositeTypeSchema change type for PostgreSQL, enabling users to manage schema changes for composite Type objects. This enhancement fills a gap in Postgres object support by allowing ALTER operations to move a Type between schemas. The change type is available in all modeled formats (XML, YAML, JSON) and includes auto-rollback functionality. [INT-1268]

PostgreSQL Composite Type Ownership Change Support. Liquibase Pro now supports altering the ownership of Composite Type objects in PostgreSQL through a new changeCompositeTypeOwner change type. This feature allows users to manage ownership changes using modeled formats (XML, YAML, and JSON), expanding Liquibase’s support for advanced PostgreSQL object types. Auto-rollback is not supported because the current owner cannot be determined. [INT-1266]

PostgreSQL Composite Type Rename Support. Liquibase Pro now supports renaming PostgreSQL Composite Type objects using a new renameCompositeType change type. This enhancement enables users to manage changes to complex data structures more effectively by allowing type renaming via modeled formats (XML, YAML, and JSON). Auto-rollback is fully supported, ensuring safe and reversible changes. [INT-1267]

Optional Primary Key Support for DBCL Table in MySQL. Liquibase Pro now includes a configurable property, --mysql-enable-dbcl-primary-key to optionally add a primary key to the DATABASECHANGELOG (DBCL) table during initial creation in MySQL databases. When the toggle is enabled, Liquibase will create the DBCL table with a primary key if it does not already exist. If the DBCL table exists without the key, Liquibase halts and provides instructions for manual correction. Conversely, if the table already includes the key and the toggle is disabled, Liquibase proceeds with an informational message. This ensures compatibility with replication tools while maintaining operational flexibility. [INT-169], [INT-170]

Other Updates

Anonymous Analytics (New Pro Distribution Only). Liquibase Pro 4.32.0 updates the default behavior for anonymous usage analytics. Analytics are now enabled by default for new Liquibase Pro distribution users. These analytics help the Liquibase team improve the product by collecting aggregated, non-PII data such as command usage, error rates, database types, Java versions, and Liquibase feature adoption. Analytics are only captured when a command is run, and users can opt in or out at any time using the --analytics-enabled global parameter. This allows organizations to maintain control over data sharing in alignment with internal policies.

Liquibase Pro Software Bill of Materials (New Pro Distribution Only). Liquibase Pro introduces Liquibase Pro SBOM, machine-readable Software Bill of Materials (SBOM) files bundled with every Liquibase Pro release. Provided in both CycloneDX and SPDX JSON formats, these SBOMs give enterprise teams full transparency into included packages, versions, licenses, dependencies, and checksums—helping meet regulatory compliance (e.g., EO 14028, FedRAMP, SOC 2), support vendor risk reviews, and streamline audits. No extra setup or CLI steps are required—SBOMs are automatically included with each release, ensuring teams stay secure and audit-ready by default. [DAT-20209]

[OSS]

OSS Notable Changes

NoSql Snapshot improvements. The previous snapshot capability allowed only one Generator as top level for the chain. With this release, the chain handler has been enhanced to ensure all subscribed generators are called. (#5775)

Snowflake timestamp improvements. This release fixes breaks and provides enhanced messaging for time, datetime, and timestamp types (such as timestamp_ntz) in Snowflake changesets. (#6742)

[PRO] Changelog

🚀 New Features

🐛 Bug Fixes 🛠

🤖 Security, Driver and Other Updates

[OSS] Changelog

💥 Breaking Changes

  • None

🚀 New Features

  • (#6921) INT-1249: refactored StringSnapshotSerializerReadable to be able to extend expandable and skipped object types from Pro and Extensions. @SvampX
  • (#6899) feat: Improve Command Definition Internal Status Inheritance @filipelautert
  • (#6905) feat: Rename misleading update methods in Liquibase class @filipelautert
  • (#6866) feat: add support for default value sequence next to hsqldb @filipelautert
  • (#6798) Database support custom method escapeForLike @ThisOldDog
  • (#6898) INT-170: extracted getCreateTableStatement in separate method to enable composite PK for MySQL DBCL table. @SvampX
  • (#6807) [DAT-19654] made fields in AbstractFormattedChangeLogParser constants to reuse in util classes @KushnirykOleh
  • (#6693) add maven profile to build minimal distributions (DAT-19476) @StevenMassaro
  • (#6835) feat: new tagDatabase parameter to keep tag on rollback @filipelautert
  • (#5775) feat: improve snapshot generation for NOSQL databases @filipelautert
  • (#6694) Show message and exit if user attempts to use Azure without extension DAT-19430 @wwillard7800
  • (#6801) reduce number of API calls for analytics by caching events (DAT-19789) @StevenMassaro
  • (#6806) [DAT-19691] Code refactorings to fix sonar issues @MalloD12
  • (#6781) [DAT-18971] gzip log files if log-file parameter ends in .gz @StevenMassaro
  • (#6744) 6743: support the Arabic character "Kasra" @Eraoui909
  • (#6774) Use hasIgnoreNested method for all database preconditions @wwillard7800
  • (#6780) Added method to return the original path for a Resource @wwillard7800
  • (#6679) Improves MDC logging by database-specific command formatting @CharlesQueiroz
  • (#6706) Only report rows affected for DML statements @wwillard7800
  • (#6710) Handle changes skipped due to OS mismatch DAT-19334 @wwillard7800

🐛 Bug Fixes 🛠

  • (#6900) INT-185 - Solving the situation where the customer tries to connect t @CharlesQueiroz
  • (#6838) Upon Evaluation of changeLogPropertyDefinied precondition also include local properties of nested changesets. @2fxprogeeme
  • (#6875) Fix Oracle regression from splitStatements:false change DAT-19983 @wwillard7800
  • (#6872) fix: change String[] to List\<String> in COMMAND_DEFINITIONS cache @FatovDI
  • (#6860) fix: Prevent duplicate entries in databasechangelog with runAlways and onFail="MARK_RAN" @filipelautert
  • (#6867) fix: resource path resolution inside JAR files @filipelautert
  • (#6869) Test fixes for path issue @wwillard7800
  • (#6833) Default splitStatements to false for formatted SQL generation DAT-19702 @wwillard7800
  • (#6808) Date with timezone formats added. @MalloD12
  • (#6800) Pass CHANGELOG ARG to scope of changelogSync command @fido-node
  • (#6755) Fix handling of PostgreSQL uppercase catalog names after v42.7.5 driver changes @MalloD12
  • (#6830) fix: exclude duplicated dependencies provided by opencsv @filipelautert
  • (#6826) fix [#5197]: Ensure contexts from properties object are not ignored @filipelautert
  • (#6825) fix multiline select statements in execute-sql (DAT-19722) @StevenMassaro
  • (#6818) excluded junit from commons-collections4 @KushnirykOleh
  • (#6795) re-add headers to -sql commands (DAT-18306) @StevenMassaro
  • (#6806) DAT-19691 :: Code refactorings to fix sonar issues @MalloD12
  • (#6802) Fix snapshot for MSSQL decimal sequences (DAT-19504) @abrackx
  • (#6787) For SQL Server, sync up the backing index for PK and UC to the one that is auto-generated DAT-19267 @wwillard7800
  • (#6793) fix: classpath expression should also work when it is separated by an empty space instead of an = @filipelautert
  • (#6745) Fix foreignKeyConstraintExists precondition when constraint already exists in the DB @MalloD12
  • (#6753) fix liquibase-cli dependencies when deploying to Maven Central @filipelautert
  • (#6764) Do not include size on user defined types (DAT-19150) @abrackx
  • (#6596) Make the logChannels property work DAT-19296 @wwillard7800
  • (#6752) Fix LoadData issues for CLOB Values Containing Invalid File Path Characters @filipelautert
  • (#6674) Fix concurrency issues in multithread environments @filipelautert
  • (#6751) avoid NPE when analytics config issue occurs (DAT-19472) @StevenMassaro
  • (#6770) Revert weld-se-core upgrade @abrackx
  • (#6727) improve/fix snowflake view generation SQL @filipelautert
  • (#6750) DAT-18499 Log level changed when specifying driver on the CLI @MalloD12
  • (#6560) Add DiffOutputControl support for specifying a data directory argument @MalloD12
  • (#6692) Snapshot all configuration values for Oracle sequences @marchof
  • (#6663) Close ResultSet to prevent leaking it @ahus1

🤖 Security, Driver and Other Updates

  • (#6928) chore(deps): bump com.opencsv:opencsv from 5.10 to 5.11 by @dependabot
  • (#6857) chore(deps): bump org.projectlombok:lombok from 1.18.36 to 1.18.38 by @dependabot
  • (#6747) chore(deps-dev): bump org.jboss.weld.se:weld-se-core from 5.1.3.Final to 6.0.1.Final by @dependabot
  • (#6741) Fix/generate-oss-pro-sbom-reports @sayaliM0412

Full Changelog: https://github.com/liquibase/liquibase/compare/v4.31.0...v4.32.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/.

Join 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:

Contribute code Make doc updates Help by asking and answering questions Join our Discord server Sign up to provide feedback to the product team

Thanks to everyone who helps make Liquibase better!

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
  • 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
Source: README.md, updated 2025-05-21