CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Releases: liquibase/liquibase
Liquibase v5.0.1
06b9ef9
Compare
Liquibase Community 5.0.1 is a minor patch release
See the Liquibase Community 5.0.1 Release Notes for the complete set of release information.
License corrections for Maven
The license block for Maven users has been corrected to use the Functional Source License (FSL).
- Name: Functional Source License, Version 1.1, ALv2 Future License
- URL: https://fsl.software/FSL-1.1-ALv2.template.md
Changelog
-(#7350) Update licensing and documentation for OSS distribution by @filipelautert
Full Changelog: v5.0.0...v5.0.1
Assets 7
Liquibase v5.0.0
d6e2ccb
Compare
Liquibase Community 5.0 is a major release
See the Liquibase Community 5.0 Release Notes for the complete set of release information.
⚠️ MAJOR CHANGES IN COMMUNITY AND COMMERCIAL DISTRIBUTIONS
Liquibase is evolving to better serve both open-source contributors and enterprise customers by introducing a clearer separation between its open source Community and the commercial Secure offering. This change is designed to ensure that each distribution is optimized for its respective users: providing open-source Community users with flexibility and control, while delivering scalability, reliability, and governance for Secure enterprise teams. The changes provide Liquibase Secure customers:
- Developer Productivity. Enable developers with autonomy and guardrails built directly into their daily workflow.
- Secure Automation. Embed governance, security, and compliance into every change automatically.
- Change Insights. Deliver audit-ready visibility so every change is trusted, explainable, and observable.
The new structure enables Liquibase to more effectively support developers at all stages—from experimentation and community collaboration to mission-critical deployments. Therefore, starting with this Liquibase 5.0 release, only the open source Community distribution is available at the traditional Github, Docker, and Maven access channels.
If you need the Secure commercial offering, please visit Liquibase.com
- Learn more Liquibase 5.0
Liquibase Community Licensing Change
Additionally, Liquibase Community is now licensed under the Functional Source License (FSL). See LICENSE file at the root of the distribution for details. Starting with Liquibase 5.0, contributors will be asked to sign a one-time Contributor License Agreement (CLA). This is handled automatically by CLA Assistant when you open your first pull request.
Liquibase 5.0 Community Release Notable Changes
Liquibase Package Manager (LPM) integrated to enable users to install, update, and manage their dependencies
- The open source Liquibase Community 5.0 ships without extensions, drivers, and many other packages and dependencies. This change provides a much lighter, modular, and customizable Liquibase experience for Community users. Importantly, this flexibility both allows and requires users to manage their Liquibase dependencies for their specific needs.
- Liquibase Package Manager is now integrated and available for use directly from within the Community CLI experience with a new
liquibase lpm
command as the preferred method for managing dependencies. - Learn more at the LPM README
Liquibase Community 5.0+ ships with the Functional Source License (FSL)
- "The Functional Source License (FSL) is a Fair Source license that converts to Apache 2.0 or MIT after two years. It is designed for SaaS companies that value both user freedom and developer sustainability. FSL provides everything a developer needs to use and learn from your software without harmful free-riding."
- Learn more at https://fsl.software/
SnowFlake JDBC Driver CVE Fix
- Liquibase 5.0 patches a vulnerability found in Snowflake JDBC driver (CVE-2025-24789) and resolves issue with logicalfilepath reported in 4.31.0. Note: Neither open source Community nor the commercial Secure products were affected by this CVE.
Dropped support for Java 8 and Java 11
- The minimal Java dependency for Liquibase 5.0+ is Java 17. This update enables Liquiabase to build, test, and ship with modern and more secure dependencies.
ValueDate Checksum bug fix
- In the last release, an issue was introduced by a change in how valueDate was calculated and incorporated into the checksum calculations. This issue has been fixed by ensuring that rawDatevalue is excluded from checksum calculations.
- (#7101) fix: prevent rawDateValue from being used for checksum calculations @filipelautert
Changelog of Community PRs
🚀 New Features
- (#7286) Allow anyAttribute in dbchangelog-latest.xsd complex types @filipelautert
- (#7190) Create LPM command (DAT-20511) @filipelautert
- (#7216) Deprecate Java 8/11 @wwillard7800
- (#7230) DAT-16042: Add test cases for SQL injection and HTML content pattern validation in
SimpleSqlGrammarTest
andStringUtilTest
@filipelautert - (#7214) INT-1414 - Implement credential obfuscation in SQL statements for Snowflake STAGE objects @filipelautert
- (#7202) INT-1416: refactored Unwrapping of DatabaseObject's inner objects while snapshot serialization @SvampX
- (#7199) Make Update Sql be Update SQL in command title @wwillard7800
- (#7177) [7176]: Mapped tag in History.Changeset @hemanthsridhar
- (#7144) Refactored to allow creation of a ChangelogPrintService for use by generateChangeLog and diffChangeLog operations @wwillard7800
- (#7104) Parameters for update SQL command @wwillard7800
- (#7118) Honor strip comments flag passed in scope in executeSql command DAT-20417 @wwillard7800
- (#7308) Update readme with license information by @filipelautert
- (#7303) Updated the links AI Generated Code by @rberezen
- (#7298) Update messaging for Pro commands in the Liquibase OSS distribution by @filipelautert
- (#7295) Update copyright notices to use range format 2007-${current.year} by @filipelautert
- (#7293) Update OSS distribution and licensing documentation by @filipelautert
🐛 Bug Fixes 🛠
- (#7187) Fixed: #7186 - Liquibase creates too short VARCHAR and CHAR fields on MS SQL databases using multi-byte encodings, effectively leading to data truncation eventually @mkarg
- (#7289) INT-1480: add custom string escaping for SnowflakeDatabase by @HorbatenkoYehor
- (#7306) Renamed GETTING_STARTED.TXT to GETTING_STARTED.txt by @rberezen
- (#7287) Fix path inconsistency in JAR file resource resolution by @rberezen
- (#7282) Fix OSS license validation to prevent NPEs and silent failures by @filipelautert
- (#7269) INT-1392: add get/setArguments and get/setProcedureName methods into … @HorbatenkoYehor
- (#7274) Fixed errors in tests on Windows 11 + git-bash cygwin @b-gyula
- (#7264) Back out change to ignore nested objects in TableExistsPreCondition @wwillard7800
- (#7257) INT-1416: Updated handling of complex UnwrappedLiquibaseSerializables @SvampX
- (#7233) Comparator resoluition should work in non-flat classloaders @gastaldi
- (#7227) #7220: Thread-safety issue when running Liquibase in a multithreaded and multitenant environment @galovics
- (#7231) fix sqlite JDBC URL parsing failure when tracking licenses (DAT-20124) @StevenMassaro
- (#7187) Fixed: #7186 - Liquibase creates too short VARCHAR and CHAR fields on MS SQL databases using multi-byte encodings, effectively leading to data truncation eventually @mkarg
- (#7154) Only mark changeset as SKIPPED if all changes are skipped GH issue 7153 @wwillard7800
- (#7200) Remove duplicate header check for formatted SQL and add log message @wwillard7800
- (#7208) Handle overwrite flag for formatted SQL correctly in generateChangelog @wwillard7800
- (#7155) Option to allow snapshot to continue after finding null snapshot ID DAT-20436 @wwillard7800
- (#7182) Fix OAuth2Secret credential exposure in update-sql command @filipelautert
- (#7192) Fixes for regressions in DAT-20619, DAT-20620, and DAT-20621 @wwillard7800
- (#7178) Throw exception if a change type has a namespace and cannot be found @wwillard7800
- (#7168) Use missing objects instead of changed objects in test DAT-20536 @wwillard7800
- (#7158) Handle situation that occurs when generateChangeLog is run with diffTypes=data @wwillard7800
- (#7165) Fix rename column generator test @wwillard7800
- (#6920) fix: Change the rename column query for mysql v8 and later using rename column to @quangdutran
- (#7141) Rollback OpenCSV version to 5.10 and address CSV loading issue @filipelautert
- (#7140) NullPointerException in SpringLiquibase.toString() @tweimer
- (#7152) fix updateSQL command ignoring endDelimiter for some statements #7148 @ponziani
- (#7108) Fix the version check for the MySQL FILTER_CONDITION to handle minor version > 0 DAT-20441 @wwillard7800
- (#7101) fix: prevent rawDateValue from being used for checksum calculations @filipelautert
- (#7079) feat: add logic to exclude resources from liquibaseHomeUri/internal in resource processing for includeAll @filipelautert
DevOps
- (#7084) DAT-20288: fill in details for root's liquibase.build.properties file @sayaliM0412
- (#7219) DAT-20673 Secure: Create new package locations @jandroav
🤖 Security, Driver and Other Updates
44 changes
- (#7301) chore(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 in the production-deps group by dependabot - (#7302) chore(deps-dev): bump the build-tools group with 2 updates by dependabot bot - (#7297) chore(deps-dev): bump the production-deps group with 2 updates by dependabot bot - (#7294) chore(deps-dev): bump org.assertj:assertj-core from 3.27.5 to 3.27.6 in the test-deps group by dependabot bot - (#7291) chore(deps): bump the build-tools group with 3 updates by dependabot bot - (#7292) Remove update-docs-oss-pro-version job @sayaliM0412 - (#7291) chore(deps): bump the build-tools group with 3 updates @dependabot[bot] - (#7284) chore(deps-dev): bump org.postgresql:postgresql from 42.7.7 to 42.7.8 in the build-tools group @dependabot[bot] - (#7283) chore(deps-dev): bump org.assertj:assertj-core from 3.27.4 to 3.27.5 in the test-deps group @dependabot[bot] - (#7281) chore(deps): bump org.projectlombok:lombok from 1.18.40 to 1.18.42 @dependabot[bot] - (#7277) chore(deps): bump the build-tools group with 3 updates @dependabot[bot] - (#7266) chore(deps-dev): bump ...Assets 7
Liquibase v4.33.0
75773ed
Compare
Liquibase 4.33.0 is a minor release
Liquibase 4.33.0 delivers important updates across Policy Checks, Change Automation, and other areas of platform enhancement, along with critical bug fixes and improvements to MongoDB, PostgreSQL, and DB2 on Z/OS support. See the Liquibase 4.33.0 Release Notes for the complete set of release information.
UPDATE
The bug fix introduced in #7036 flags multiple Formatted SQL headers in one changelog. Removing these multiple Formatted SQL headers from your changelog can lead to checksum errors for previously deployed changelogs. And while there is a workaround by specifying a validCheckSum
attribute, in the next release we will introduce a new global argument (--fail-on-multiple-formatted-sql-headers=[true (default) | false]
) as a user option to decide when to fail an operation in which multiple formatted SQL headers are detected.
Notable Changes
[PRO]
Change Automation
-
PostgreSQL Composite TYPE Support in Database Inspection. Liquibase Pro now includes support for inspecting PostgreSQL Composite TYPE objects during database inspection operations such as snapshot and diff. This enhancement ensures Composite TYPEs appear in inspection outputs, helping users manage and track changes to complex data structures more effectively. [INT-1249] [INT-135]
-
PostgreSQL Composite TYPE Support in generate-changelog and diff-changelog. Liquibase Pro now includes support for detecting PostgreSQL composite TYPE objects during generate-changelog and diff-changelog operations. This enhancement ensures that composite TYPE definitions—used to group multiple fields into a custom data structure—are captured and modeled alongside other schema elements, helping users manage and track changes more comprehensively. [INT-1251]
-
PostgreSQL Password Escaping Enhancement. Liquibase now escapes special characters in PostgreSQL passwords when using the psql native executor. Previously, if a password included characters requiring percent-encoding (such as @, %, or #), the executor would fail with a psql: error: invalid percent-encoded token message. [DAT-20254]
-
Db2 on Z/OS JCL Executor. Liquibase Pro now includes the ability to submit JCL jobs to the mainframe via Db2 DSNUTILU stored procedure. This enables users to automate more sophisticated procedures by integrating system level activities and database activities in a standard changelog format. This feature is enabled by a runwith:JCL decoration on applicable changesets containing properly formatted JCL.[INT-573, INT-1217]
-
Improved Persistent Spool File Behavior for SQLPlus Executor. The SQLPlus executor ensures that spool files are always retained when
--sqlplus-create-spool=true
, giving users consistent access to output files. Previously, spool file retention was tied to the--sqlplus-keep-temp
setting; now, this setting applies only to temporary SQL files, not spool files. This decoupling improves clarity and gives users more control—if a spool file is created, it will remain unless users opt out by setting--sqlplus-create-spool=false
. [DAT-18983]
Policy Checks
- MongoChangetypeAttributes Policy Check. Introduced a new quality check named MongoChangetypeAttributes that allows users to enforce specific values or patterns for attributes within MongoDB-specific changetypes. Users can select a single Mongo changetype (e.g., createIndex, dropCollection) and specify expected values or patterns for its attributes. The check triggers if a specified attribute is present but does not match the defined value or regex—ensuring consistent standards across Mongo changesets. This supports validation across key changetypes attributes like adminCommand, createCollection, insertOne, and more, and enhances control and quality enforcement in MongoDB deployment pipelines. [DAT-18275]
[OSS]
Important dependency updates
- Liquibase OSS 4.33+ has Java 24 core build support.
- The liquibase-cdi and liquibase-cdi-jakarta modules are still supported, but have been removed from the OSS distribution to their own repositories at https://github.com/liquibase/liquibase-cdi and https://github.com/liquibase/liquibase-cdi-jakarta
⚠️ [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 introduced 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.
PRO PRs
🆕New Features
- [DAT-20202] Added ProJdbcExecutor in order to show SQL warning messages on compiler errors liquibase/liquibase-pro#2410 by @wwillard7800
- [DAT-20173] Changes to allow connection to Azure MI liquibase/liquibase-pro#2489 by @wwillard7800
- [DAT-20286] Added code to use the getVisibleUrl method for display of URL liquibase/liquibase-pro#2478 by @wwillard7800
- [INT-1318] Added application name to JDBC properties liquibase/liquibase-pro#2381 by @wwillard7800
- [DAT-18983] Always keep the spool file if it was created liquibase/liquibase-pro#2476 by @wwillard7800 Documentation: https://docs.liquibase.com/concepts/changelogs/attributes/run-with-spool-file.html
- [DAT-20132] support regular expressions for string comparisons liquibase/liquibase-checks#221 by @StevenMassaro
- [DAT-20134] remove sql from changeset compatibility list for MongoChangetypeAttributes liquibase/liquibase-checks#224 by @StevenMassaro
- [DAT-20133] add additional logging around AbstractChangetypeAttributesCheck when not checking change liquibase/liquibase-checks#223 by @StevenMassaro
- [DAT-20131] compare JSON in MongoChangetypeAttributes using JSON equivalence liquibase/liquibase-checks#220 by @StevenMassaro
- [INT-1361] added default collation to change DataTypeAttribute. liquibase/liquibase-pro#2457 by @SvampX
- [DAT-19897] Add InitPropertiesCommandStep to generate Liquibase properties summary liquibase/liquibase-pro#2245 by @filipelautert
- feat: Refactor Snowflake JDBC connection, removing all Snowflakedriver dependencies from this class liquibase/liquibase-pro#2436 by @filipelautert
- [DAT-19668] New message appears when using the --force flag with rollback-one-changeset, rollback-one-update, and update-one-changeset liquibase/liquibase-pro#2352 by @wwillard7800
- [DAT-20254] Use PercentEscaper to percent encode password for PostgreSQL liquibase/liquibase-pro#2369 by @wwillard7800
- [INT-1217] Implementation of JCL native executor liquibase/liquibase-pro#2244 by @wwillard7800
- [DAT-19978] Flow files will only look in resource accessor for relative paths liquibase/liquibase-pro#2387 by @StevenMassaro
- [INT-160] Custom DATABASECHANGELOG and DATABASECHANGELOGLOCK Table Generation for DB2z liquibase/liquibase-pro#2260 by @CharlesQueiroz
- [INT-1321] added 'order' attribute to the DataTypeAttribute database object liquibase/liquibase-pro#2376 by @SvampX
- [DAT-18275] MongoChangetypeAttributes changetype check liquibase/liquibase-checks#209 by @StevenMassaro
🐛Bug Fixes 🐛
- [DAT-20176] [DAT-20202] Liquibase displays SQL compiler errors if they occur. liquibase/liquibase-pro#2410 by @wwillard7800
- [INT-1362]: Fix of empty generated changelog in case when only type attributes order is different liquibase/liquibase-pro#2435 by @SvampX
- [DAT-20175] Correctly determine if stored logic is valid for Oracle liquibase/liquibase-pro#2366 by @wwillard7800
- [DAT-20193] Correctly labeled the AWS and RDS documentation to reflect that it is available to OSS users. liquibase/liquibase-docs@f104c3e by @AMBERMW13
- [DAT-20244] When a formatted SQL changelog is parsed and is found to have multiple header lines, the message will display: Duplicate formatted SQL header at line X #7036 by @wwillard7800
- [DAT-20282] The deployment summary no longer includes internal DATABASECHANGELOG updates in the "Rows affected" count. This prevents inconsistencies when no customer data is changed but the summary previously showed rows affected due to internal tracking. #7063 by @StevenMassaro
- [DAT-18983] SQLPlus Spool file saves if you set –sqlplus-create-spool: true or –sql-plus-keep-temp=true. Learn more here: [runWithSpoolFile](https://docs.liquibase.com/conc...
Assets 9
Liquibase v4.32.0
7e70496
Compare
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
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 Composi...
Assets 9
v4.31.1
Compare
Liquibase 4.31.1 is a patch release
Important
Liquibase 4.31.1 patches vulnerability found in Snowlake driver (CVE-2025-24789) and resolves issue with logicalfilepath reported in 4.31.0 (see 4.31.0 Release Notes)
Note
See the Liquibase 4.31.1 Release Notes for the complete set of release information.
Notable Changes
[OSS]
logicalfilepath bug: in 4.31.0, the parent logicalfilepath value will be used in DBCL/DBCLH as the changelogfilepath value, as a result the changesets from the included changelogs that were deployed with the changelog level logicalFilePath in version 4.31.0 will be considered new and will be redeployed in the latest versions. 4.31.1 fixes this behavior and deployed changesets will not be redeployed.
[PRO] Changelog
🐛 Bug Fixes 🛠
- DAT-19579: The changesets from the included changelogs that were deployed with the changelog level logicalFilePath in version 4.31.0 will be considered new and will be redeployed in the latest versions #6716 @filipelautert
[OSS] Changelog
🐛 Bug Fixes 🛠
- (#6664) Don't ignore logicalFilePath when including changelogs @filipelautert
- (#6716) fix filename in dbcl incorrectly generated during 4.31.0 (#6712) @filipelautert
🤖 [OSS] Security, Driver and Other Updates
Snowflake vulnerability update CVE-2025-24789
- Snowflake discovered and remediated a vulnerability in the Snowflake JDBC Driver. Liquibase now includes a version with the fixed issue 3.22.0.
Full Changelog: v4.31.0...v4.31.1
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
Assets 9
Liquibase v4.31.0
11ef37b
Compare
Liquibase 4.31.0 is a major release
Important
Liquibase 4.31.0 contains an expanded Checks Extension, and so the artifact size has increased.
Note
See the Liquibase 4.31.0 Release Notes for the complete set of release information.
⚠️ Breaking Change
Changesets with entirely blank IDs will now fail validation. This change improves the reliability and diagnosability of database changes, and enforces the best-practices set forth in documentation and training.
This validation does not apply to changesets that have already been deployed. However, any changesets marked as runOnChange
or runAlways
will fail validation if they have an empty changeset ID.
UPDATE: Reported Problems with LogicalFilePath
A few OSS users have reported a logicalfilepath bug, described below. This update aims to highlight potential trouble for users who meet three specific conditions:
- Use Liquibase 4.31.0
- Use the
logicalfilepath
attribute with different values at changelog and changeset levels - Use
include/includeAll
to nest changelogs
The Bug
The standard Liquibase practice is to accept the attribute closest to the changeset. But in 4.31.0, the parent logicalfilepath
value will be used in DBCL/DBCLH as the changelogfilepath
value.
What Next?
If your workflow meets the conditions mentioned above, please avoid upgrading to version 4.31.0. The issue will be resolved in the upcoming 4.31.1 release.
Notable Changes
[PRO]
New Checks extension delivered in the box
- Policy Checks are undoubtedly one of Liquibase Pro's stickiest capabilities, for which we continually add database platforms, new checks, and customizations. But to get these developments, users would need to download and upgrade to the latest Liquibase. Not any more! With this new checks extension, you can deploy the latest Policy Checks powers by optionally upgrading just the Check Extension on your cadence. Conveniently, this extension is delivered "in the box" at
/internal/extensions
, so you do not have to change anything about your current Policy Checks workflow. - Learn more https://docs.liquibase.com/pro-extensions
Other Checks Enhancements
- Pro users can suppress sql in reports with the new global property:
--reports-suppress-sql=true
- New checks-settings files can be created without CLI prompts by adding
--force
to checks show command - By popular demand, checks reports now show all checks run, including those not triggered.
- We simplified the custom python check creation flow by removing the single-answer prompts/
- Learn more https://docs.liquibase.com/policy-checks
[OSS]
Liquibase capability enhancements
- Changesets with entirely blank IDs will fail validation. This is a breaking change.
- NOTE: Validation should not fail for changes that have already been ran. Changes that have been ran with an empty changeset id that are marked as
runOnChange
orrunAlways
WILL fail validation.
- NOTE: Validation should not fail for changes that have already been ran. Changes that have been ran with an empty changeset id that are marked as
- Added changeset execution time to output and logs
- Added calculated checksum to output of
calculate-checksum
command - Added two new command parameters to
history
command so users can better see tagged deployments without having to directly examine theDATABASECHANGELOG
tableshow-tags
will return only tagged deployment historytag-filter
will return deployment history for a specific tag or group of tags
- If an
XML
changelog isgenerate-changelog
and fails to validate, Liquibase will indicate where the codepoint where the XML failure is located. - Added new Spring properties for Pro license key and to disable analytics
Java API Changes
- Added missing
changeLogParameters
argument togenerateChangeLog
,calculateCheckSum
,doChangeLogSyncSql
, andchangeLogSync
[PRO] Changelog
🚀 New Features
- DAT-19367: undo UUID-ing of deployment ID in liquibase/liquibase-pro#2108 by @StevenMassaro
- DAT-18519: Reverting cloneTable generic changeType in liquibase/liquibase-pro#2068 by @SvampX
- DAT-19302: combined dependabot PRs in liquibase/liquibase-pro#2093 by @StevenMassaro
- feat: light build script to be triggered by liquibase oss builds in liquibase/liquibase-pro#2082 by @filipelautert
- DAT-19242: Update error messaging for stub checks commands in liquibase/liquibase-pro#2081 by @abrackx
- Fixed dbclh-deployment_id column size in liquibase/liquibase-pro#2078 by @rberezen
- DAT-19049 Complete work to move all checks-related code to a new extension in liquibase/liquibase-pro#2066 by @wwillard7800
- DAT-19000: added 'cloneTable' changetype with no supported databases in liquibase/liquibase-pro#2064 by @SvampX
- DAT-17940: optionally suppress SQL in reports in liquibase/liquibase-pro#2036 by @StevenMassaro
- add PRO_LICENSE_KEY to liquibase-aws-extension in liquibase/liquibase-pro#2058 by @sayaliM0412
- DAT-18892: create checks show files without prompting in liquibase/liquibase-pro#2050 by @StevenMassaro
- DAT-18129: update checks run output for checks that are disabled but requested to be run in liquibase/liquibase-pro#2049 by @StevenMassaro
- DAT-18777 Add a snippet of the matching SQL to the console output in liquibase/liquibase-pro#2020 by @wwillard7800
- DAT-18868: Include successful checks in checks run report "Details by Check" section in liquibase/liquibase-pro#2048 by @abrackx
- DAT-17901 Pass the database instance in the scope for changelog parsing in liquibase/liquibase-pro#2042 by @wwillard7800
- DAT-18780: Add messaging for scripts that cannot execute when using MaxAffected checks in liquibase/liquibase-pro#2039 by @abrackx
- DAT-18793: replace slf4j-simple with slf4j-nop in liquibase/liquibase-pro#2038 by @StevenMassaro
- [PRO license rotation] Fixed typo for yugabyte repo in liquibase/liquibase-pro#2047 by @jandroav
- DAT-18836 - CPC: database scope checks should not ask "requires snapshot" in liquibase/liquibase-pro#2041 by @filipelautert
- DAT-15504: Migrate init project to core in liquibase/liquibase-pro#2004 by @abrackx
- DAT-18328 Update to match core for stripComments in modifyChangeSets in liquibase/liquibase-pro#1981 by @wwillard7800
- DAT-18841 Do not prompt for script type with CPC in liquibase/liquibase-pro#2027 by @wwillard7800
- DAT-10610 Added a flag to help trim down exception logging in liquibase/liquibase-pro#1997 by @wwillard7800
- DAT-18328 Add
stripComments
attribute tomodifyChangeSets
by @wwillard7800
🐛 Bug Fixes 🛠
- DAT-19045: fix string wrapping when it contains newlines in liquibase/liquibase-pro#2104 by @StevenMassaro
- DAT-19241 Help fixes for the stubs in liquibase/liquibase-pro#2077 by @wwillard7800
- DAT-18842 Fix issue where we were passing the wrong argument to the executor in liquibase/liquibase-pro#2006 by @wwillard7800
🤖 Security, Driver and Other Updates
- Bump actions/setup-python from 5.1.0 to 5.3.0 in liquibase/liquibase-pro#2008 by @dependabot bot
- Bump com.github.jsqlparser:jsqlparser from 4.9 to 5.0 in liquibase/liquibase-pro#1866 by @dependabot bot
- Revert "Bump com.github.jsqlparser:jsqlparser from 4.9 to 5.0" in liquibase/liquibase-pro#2044 by @StevenMassaro
[OSS] Changelog
💥 Breaking Changes
🚀 New Features
- (#6371) Implement logic to selectively include/exclude columns in generate-changelog "data" export (Issue #3371, #6310) @catull
- (#6486) Update
release-published.yml
to get the previous version by @sayaliM0412 - (#6490) DAT-18995: populate proper
client_payload
fordry_run
by @sayaliM0412 - (#6498) Change automated release file version to
main
by @tati-qalified - (#6497) DAT-18995: default
dry_run
value tofalse
by @sayaliM0412 - (#6415) Add flag to top-level
Scope
to suppress logging of exceptions in certain cases by @wwillard7800 - (#6451) Migrate
init project
command to core (DAT-15504) by @abrackx - (#6514) DAT-18995 by @sayaliM0412
- (#6515) Recognize
isIO
environment variable for analytics (DAT-18906) by @StevenMassaro - (#6509) Replace
slf4j-simple
withslf4j-nop
(DAT-18793) by @StevenMassaro - (#6373) Report which
codePoint
is illegal for XML data export by @catull - (#6512) Liquibase API: Add missing
changeLogParameters
argument by @MalloD12 - (#6436) Check if the next character is out of string length by @fntz
- (#6494) Make changelog and changeset logical file path settings override
includeAll
setting (Issue #6493) by @wwillard7800 - (#6511) SQLFile: Add DBMS validation check by @MalloD12
- (#6528) Revert refactoring that broke structured logging by @StevenMassaro
- (#6516) Add new properties to Spring configuration (analytics enabled and pro license) by @filipelautert
- (#6553) Add
liquibase-checks
property by @wwillard7800 - (#6529) Do not propagate logical file path to included changesets from raw SQL changelogs (DAT-19040) by @wwillard7800
- (#6499) Optionally suppress SQL in reports (DAT-17940) by @StevenMassaro
- (#6557) Avoid retri...
Assets 9
Liquibase v4.30.0
38cc3e9
Compare
Liquibase 4.30.0 is a major release
Important
Liquibase 4.30.0 contains new capabilities and notable enhancements for Liquibase OSS and Pro users including:
- Flow enhancements
- Validation improvements
- Clearer error messaging for thrown exceptions
- Addition of Anonymous Analytics
- Deprecation of the MacOS dmg installer in favor of installation via homebrew
Note
See the Liquibase 4.30.0 Release Notes for the complete set of release information.
Notable Changes
[PRO]
Anonymous Analytics:
- Liquibase can now gather anonymous usage analytics when commands are run. No user-specific data will be gathered.
For Liquibase OSS users, this functionality is enabled by default, but can be opted-out of before any data is sent. For Liquibase Pro users, this is disabled by default with the ability to opt-in.
Gathering anonymous usage analytics allows us to better understand how Liquibase is actually being used by a very wide, diverse set of millions of users.
- Learn more https://docs.liquibase.com/analytics
Flow Enhancements: Detect pending changesets, and variable-variables
- There are two exciting Flow enhancements: the ability to condition action on presence of pending changesets, and the ability to use a global variable inside other global or stage variables, enabling variable-variables within flows.
- Learn more https://docs.liquibase.com/flow
[OSS]
Usability Improvements:
- Avoid ignoring caught exceptions, and instead return the exception and append the reason for better debugging.
- When using
failOnError=false
, changesets that failed will now show up in the default output. - When using STRICT mode,
update-to-tag
will now throw an error when there is no tag specified or the tag specified does not exist. - Added a
Customizer
that allows discovery of changesets that are not known to an application. This can be used to prevent an application's startup when discovering new, unexpected changesets before an update is made.
Deprecated: MacOS .dmg installer
- The MacOS dmg installer no longer ships with release artifacts. Please use the tar.gz or .zip release artifacts, or install via homebrew by running brew install liquibase
For a full list of improvements and bug fixes, see the [OSS] Changelog section.
[PRO] Changelog
🚀 New Features
- DAT-18202 Implement wildcard check name argument for enable/disable in liquibase/liquibase-pro#2000 by @wwillard7800
- DAT-17058: Add analytics in liquibase/liquibase-pro#1995 by @liquibot
- DAT-17568 Added exit command action in liquibase/liquibase-pro#1689 by @wwillard7800
- DAT-18689: Add extra information to failed changesets summary in liquibase/liquibase-pro#1996 by @filipelautert
- DAT-18114 Added more logging for formatted SQL parsing in liquibase/liquibase-pro#1994 by @wwillard7800
- DAT-18455 Add SQL file path to policy checks output in liquibase/liquibase-pro#1944 by @wwillard7800
Changes
- DAT-17581 Exit with a non-zero if the changelog did not validate in liquibase/liquibase-pro#1870 by @wwillard7800
- DAT-18540 Create new ReportWriter.open(String path) method that default to no-op in liquibase/liquibase-pro#1962 by @wwillard7800
- DAT-18092: Use xdg-open to open reports in browser on linux operating systems in liquibase/liquibase-pro#1948 by @abrackx
- DAT-18531 Clear out DBCL fast check cache before each Flow action in liquibase/liquibase-pro#1933 by @wwillard7800
- DAT-18362 Handle comments when parsing include/includeAll statements in liquibase/liquibase-pro#1959 by @wwillard7800
- DAT-18463 Implement a class to be used to capture the start/end positions of a regex check for line number output in liquibase/liquibase-pro#1979 by @wwillard7800
- DAT-18869: Obfuscate IO arguments in liquibase/liquibase-pro#1999 by @abrackx
🐛 [PRO] Bug Fixes 🛠
- DAT-18819: Fix dropall behavior with snowflake in liquibase/liquibase-pro#1987 by @abrackx
- DAT-18517 Handle expansion of variables when default values are involved in liquibase/liquibase-pro#1969 by @wwillard7800
- DAT-18327: improve startup performance in liquibase/liquibase-pro#1972 by @StevenMassaro
- Fix tests to use new CommandFactory.reset() method in liquibase/liquibase-pro#1952 by @wwillard7800
🤖 [PRO] Security, Driver and Other Updates
12 changes
(#1973) Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.17.2 to 2.18.0 by dependabot
(#1974) Bump com.fasterxml.jackson.core:jackson-annotations from 2.17.2 to 2.18.0 by dependabot
(#1976) Bump com.fasterxml.jackson.core:jackson-databind from 2.17.2 to 2.18.0 by dependabot
(#1975) Bump com.fasterxml.jackson.core:jackson-core from 2.17.2 to 2.18.0 by dependabot
(#1988) Bump org.apache.maven.plugins:maven-failsafe-plugin from 2.22.2 to 3.5.1 by dependabot
(#1991) Bump org.apache.maven.plugins:maven-surefire-plugin from 2.22.2 to 3.5.1 by dependabot
(#2003) Bump org.junit.vintage:junit-vintage-engine from 5.10.3 to 5.11.3 by dependabot
(#2002) Bump org.junit:junit-bom from 5.10.3 to 5.11.3 by dependabot
(#1963) Bump com.networknt:json-schema-validator from 1.5.0 to 1.5.2 by dependabot
(#1947) Bump org.yaml:snakeyaml from 2.2 to 2.3 by dependabot
(#1984) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 1.13.1 to 4.0.1 by dependabot
(#2005) Bump org.nanohttpd:nanohttpd from 2.2.0 to 2.3.1 by dependabot
[OSS] Changelog
🚀 New Features
- (#6414) When using
failOnError=false
, changesets that failed will now show up in the default output. Thanks, @filipelautert - (#6413) Ensure all failed changesets show in the exceptionChangesets. Previously, output summaries did not include changesets that failed when running
failOnError=false
(DAT-18689). Thanks, @filipelautert - (#6169) When using STRICT mode,
update-to-tag
will now throw an error when there is no tag specified or the tag specified does not exist. Thanks, @MalloD12 - (#6410) Modified
clob
handling inloadData
by checking the string passed to a CLOB type column. Thanks, @tati-qalified- By default this value will be interpreted as a path. If the file at that path exists, the file's contents will be inserted into the column. If not, the passed value will be inserted as-is.
- (#6067) Added additional modes for
duplicateFileMode
. Thanks, @k4pran- INFO - Logs when duplicate changelog files are found at the INFO level
- DEBUG - Logs when duplicate changelog files are found at the FINE level
- SILENT - Does not log when duplicate changelog files are detected
- (#6432) Added a
Customizer
that allows discovery of changesets that are not known to an application. This can be used to prevent an application's startup when discovering new, unexpected changesets before an update is made. Thanks, @raphw - (#6288) Avoid ignoring caught exceptions, and instead return the exception and append the reason for better debugging. Thanks, @asolntsev
- (#6265) Enhanced
include
andincludeAll
to supportlogicalFilePath
(DAT-18350). Thanks, @wwillard7800 - (#6300) Added method to reset command definitions cache in CommandFactory for testing. Thanks, @wwillard7800
- (#6280) Undeprecated StringUtil class (DAT-18538). Thanks, @MalloD12
- (#5223) Improved empty check style by using
isEmpty
String method. Thanks, @MalloD12 - BigQuery
- (#6294) Suppress UnsupportedClassVersionErrors for Bigquery at info level (DAT-18534). Thanks, @filipelautert
- Databricks
- (#6263) Fix generated column value for Databricks (DAT-18148). Thanks, @filipelautert
- Maven
- (#6129) Support Hashicorp Vault settings in the Maven Plugin POM. Thanks, @wwillard7800
- MSSQL
- (#6138) Added support for
include
columns in indexes. Thanks, @stephenatwell
- (#6138) Added support for
- PostgreSQL
- (#6402) Added
pg_stat_statements
andpg_stat_statements_info
views to the list of system tables and views to prevent them from being dropped. Thank you, @rozenshteyn - (#6211) Updated PostgreSQL database major and minor versions. Thanks, @MalloD12
- (#6402) Added
🐛 Bug Fixes 🛠
- (#6266) Fix CustomTaskRollback rollback bug where it was being called twice. Thanks, @momosetkn
- (#6205) Removed usage of the deprecated isEmpty() method. Thanks, @anton-erofeev
- (#6366) Improve startup performance (DAT-18327). Thanks, @StevenMassaro
- (#6407) Added filterable flag to ChangeLogParameter class (DAT-18811). Thanks, @abrackx
- This enables users to use label filters such as @some-filter and still have values replaced from global changelog parameters like environment variables.
- (#6416) When determining the schema name make sure a value was found (DAT-18673). Thanks, @abrackx
- (#6418) Fix issue where context filters with
@
symbols were not being executed properly (DAT-18843). Thanks, @abrackx - (#6406) Test assertion code modification. (DAT-17568). Thanks, @wwillard7800
- (#6429) Check that getPriority method is correct for snapshot generators (DAT-18730). Thanks, @StevenMassaro
- (#6417) Revert "Remove unneeded inclusion of commons-io in liquibase-core pom.xml". Thanks, @catull
- (#6385) Do not check for nested database objects when using foreignKeyConstraintExists precondition (DAT-18624). Thanks, @abrackx
- (#5894) Do not strip "classpath:" when normalizing the path. Thanks, @andrus
- (#6359) Fix issue...
Assets 9
Liquibase v4.29.2
fd04dbd
Compare
Liquibase 4.29.2 is a patch release
Important
Liquibase 4.29.2 patches minor issues found in Liquibase 4.29.1 release.
Note
See the Liquibase 4.29.2 Release Notes for the complete set of release information.
Notable Changes
[PRO]
Custom Policy Checks updates: Create and run Python-based checks which fit your specific needs.
- Liquibase checks have been opened to the world of Python development! This release fixes some minor issues so you can use your custom Python scripts as policy checks to solve your nuanced and techstack specific conditions for better risk mitigation, compliance, code quality, security, and more.
- Learn more https://docs.liquibase.com/custom-policy-checks
- Get the Checks extension to enable this capability: https://docs.liquibase.com/pro-extensions
Deprecation Notice
MacOS .dmg Installer to be removed in next release.
- This is the final Liquibase release in which the MacOS installer will be shipped. Both the tarball (the liquibase-x.y.z.tar.gz) and the .zip (liquibase-x.y.x.zip) are the preferred replaced options for MacOS users.
- Questions or comments? https://www.liquibase.com/contact-us
[PRO] Changelog
💥 Breaking Changes
- None
Changes
- DAT-18013: optionally suppress Liquibase SQL for *-sql commands in liquibase/liquibase-pro#1877 by @StevenMassaro
- DAT-17659: tagDatabase changes in formatted sql files in liquibase/liquibase-pro#1833 by @StevenMassaro
- DAT-18310: update CustomCheckDefaultValuesTest to check all parameters in liquibase/liquibase-pro#1887 by @StevenMassaro
- Now that report files are enabled by default, suppress them with git in liquibase/liquibase-pro#1886 by @wwillard7800
- DAT-17390: global setting for stripComments option in liquibase/liquibase-pro#1879 by @StevenMassaro
- DAT-18111: add "Report" word to title of update reports in liquibase/liquibase-pro#1890 by @StevenMassaro
- DAT-18182: show correct message when license expires on same day in liquibase/liquibase-pro#1885 by @StevenMassaro
- DAT-18342: Store Pro License Key in AWS Secrets Manager in liquibase/liquibase-pro#1896 by @sayaliM0412
- DAT-18063 Release lock after SQLPLUS timeout error in liquibase/liquibase-pro#1892 by @wwillard7800
- DAT-18360: only show expiration date message in checks run if expiration date is not null in liquibase/liquibase-pro#1895 by @StevenMassaro
- fix: expected output for help in liquibase/liquibase-pro#1900 by @filipelautert
- DAT-18396 - fix scripts resource caching in liquibase/liquibase-pro#1899 by @filipelautert
- DAT-18420 Change check that controls database checks to make sure they don't run just because we took a snapshot for a custom check in liquibase/liquibase-pro#1902 by @wwillard7800
- DAT-18440 Handle strict mode setting when doing auto rollback in liquibase/liquibase-pro#1909 by @wwillard7800
- DAT-18196: add method to LicenseService to allow custom invalid license message in liquibase/liquibase-pro#1917 by @StevenMassaro
- DAT-18389 Changing Quality Checks -> Policy Checks in liquibase/liquibase-pro#1906 by @wwillard7800
[OSS] Changelog
💥 Breaking Changes
- None
Changes
- 4.29.1 release in #6141 by @filipelautert
- DAT-17914 in #6158 by @sayaliM0412
- optionally suppress Liquibase SQL for *-sql commands (DAT-18013) in #6132 by @StevenMassaro
- changes in support of globally setting stripComments option (DAT-1739) in #6137 by @StevenMassaro
- Handle reporting of changes which are skipped due to license issues (DAT-17659) in #6114 by @wwillard7800
- DAT-17993 Improve diffChangelog between MSSQL and Oracle in #6094 by @filipelautert
- DAT-18250 DevOps :: Clean up branch build not working in #6162 by @jandroav
- compare contents of zip file against baseline (DAT-18324) in #6166 by @StevenMassaro
- maven flag for suppressLiquibaseSql (DAT-18273) in #6163 by @StevenMassaro
- Append included labels to the changeset labels when matching (DAT-16636) in #6159 by @wwillard7800
- chore: upgrade installer jdk version to 21.0.4+7 in #6119 by @filipelautert
- Fix serialization of DatabaseChangeLog with 'preConditions' for yaml in #6118 by @MalloD12
- Add additional duplicateFileMode options in #6067 by @k4pran
- Do not show update summary when using update-sql via maven plugin (DAT-18323) in #6168 by @abrackx
- Bump org.mariadb.jdbc:mariadb-java-client from 3.3.3 to 3.4.1 in #6113 by @dependabot
- fix case where expiration date is null in --version output (DAT-18360) in #6170 by @StevenMassaro
- Make Scope ID RNG no longer use SecureRandom (fix #6178 in #6179 by @danielthegray
- Use correct method for Maven updateSQL (DAT-18142) in #6198 by @wwillard7800
- DAT-18398 - Do not add version to shipped extensions + ignore current ones in #6197 by @filipelautert
- Fixes issue 6054: incorrect system table query on DB2 AS/400 platform in #6185 by @AlexCoolen
- Do not throw exception if data type is not supported by database in #6226 by @wwillard7800
- Do not release lock if not locked by this update * DAT-18370 in #6218 by @wwillard7800
- add method to LicenseService to allow custom invalid license message( DAT-18196) in #6232 by @StevenMassaro
- fix: EndDelimiter not working as expected since 4.29 in #6157 by @filipelautert
- Changing Quality Checks -> Policy Checks in #6204 by @wwillard7800
- fix release workflows in #6260 by @jandroav
- chore: restore DAT-18398 changes by @filipelautert
🤖 Security, Driver and Other Updates
3 changes
- Bump org.testcontainers:testcontainers-bom from 1.19.8 to 1.20.1 in #6155
by @dependabot - Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0 in #6112
by @dependabot - Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.7.0 to 3.8.0 in #6116
by @dependabot
New Contributors
Full Changelog: v4.29.1...v4.29.2
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:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
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
Assets 10
Liquibase v4.29.1
e0c7137
Compare
Liquibase 4.29.1 is a patch release
Important
Liquibase 4.29.1 patches minor structure and pom issues found in Liquibase 4.29.0 release.
Note
See the Liquibase 4.29.1 Release Notes for the complete set of release information.
Notable Changes
[PRO]
Liquibase 4.29.1 .zip files: Restored to standard directory structure
- This release correctly places Liquibase .zip files inside liquibase-4.29.1 directory to match Pre-4.29.0 directory structure.
Big Query Extension: using Liquibase Pro with Google Big Query
-
With Liquibase 4.29.1, Google BigQuery is now supported as an ‘out of the box’ database enabling users to more quickly achieve value. Also included is support for Liquibase Pro features such as Flows, Policy Checks, and Reports with Google BigQuery so that users will have the efficiency and productivity benefits of Liquibase Pro when working with the platform.
-
Learn more https://docs.liquibase.com/bigquery
[PRO] Changelog
🐛 [PRO] Bug Fixes 🛠
- DAT-18294: Correctly default check scope parameter in liquibase/liquibase-pro#1880 by @wwillard7800
- DAT-18308: DevOps :: Extensions are built against liquibase 0-SNAPSHOT https://github.com/liquibase/liquibase-pro/pull6144
🤖 [PRO] Security, Driver and Other Updates
- None
Full Changelog: v4.29.0...v4.29.1
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:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
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
Assets 10
v4.29.0
7e83bbc
Compare
Liquibase 4.29.0 is a major release
Important
Liquibase 4.29.0 contains several new capabilities and notable enhancements for Liquibase Pro users: Python-based Custom Policy Checks, a new Google BigQuery extension, and Operation Reports being enabled by default in certain conditions.
Note
See the Liquibase 4.29.0 Release Notes for the complete set of release information.
Notable Changes
[PRO]
Big Query Extension: using Liquibase Pro with Google Big Query
- With Liquibase 4.29.0, Google BigQuery is now supported as an ‘out of the box’ database enabling users to more quickly achieve value. Also included is support for Liquibase Pro features such as Flows, Policy Checks, and Reports with Google BigQuery so that users will have the efficiency and productivity benefits of Liquibase Pro when working with the platform.
- Learn more https://docs.liquibase.com/bigquery
Operation Reports: Enabled by default
- With Liquibase 4.29.0, Operation reports for key Liquibase commands are generated and presented to users who meet the following conditions: running Liquibase commands which generate reports, on systems with read/write permissions, which are not "headless" in automation, and who have not explicitly set LIQUIBASE_REPORTS_ENABLED=false.
- Learn more at https://docs.liquibase.com/operation-reports
Custom Policy Checks: Create and run Python-based checks which fit your specific needs.
- Liquibase checks have been opened to the world of Python development! With this release, you can point your custom checks to your custom Python scripts to solve your nuanced conditions for better risk mitigation, compliance, code quality, security, and more. (Extension release: 29 July 2024)
- Learn more https://docs.liquibase.com/custom-policy-checks
[PRO] Changelog
🚀 New Features
- DAT-16671: Custom policy checks in liquibase/liquibase-pro#1671 by @wwillard7800
- DAT-17725: Enable reporting by default, swallow all report generation exceptions in liquibase/liquibase-pro#1763 by @abrackx
- DAT-17871: allow multiple checks to be specified in checks enable/disable commands in liquibase/liquibase-pro#1814 by @StevenMassaro
- DAT-17490: Enhance up* DATe report to split skipped changesets into their own collapsible section in liquibase/liquibase-pro#1752 by @abrackx
- DAT-17635: add wildcard support for check-name param for checks run, show, bulkset in liquibase/liquibase-pro#1787 by @StevenMassaro
Changes
- DAT-17988: PRO: checks run --checks-output=nonapplicablechecks is broken in liquibase/liquibase-pro#1792 by @wwillard7800
- DAT-17870: add aliases for parameters in checks run, show, and create commands in liquibase/liquibase-pro#1799 by @StevenMassaro
- DAT-17972: abstract report writing to interface for IO in liquibase/liquibase-pro#1795 by @StevenMassaro
- DAT-18086: update minor versions for Azure Uber Jar in liquibase/liquibase-pro#1868 by @filipelautert
- DAT-17654: add test for starting and stopping H2 in detached mode in liquibase/liquibase-pro#1735 by @StevenMassaro
- DAT-17883 Actually expand java and defaults file properties when using --property-substitution-enabled flag in liquibase/liquibase-pro#1782 by @abrackx
- DAT-15723: include arguments in generated drop function changes for Postgres in liquibase/liquibase-pro#1765 by @StevenMassaro
- DAT-17621: add ChangesetAttributesSetTrueOrFalse check in liquibase/liquibase-pro#1754 by @StevenMassaro
- DAT-17657 Handle non-String arguments in Flow in liquibase/liquibase-pro#1721 by wwillard7800
- DAT-16603 Do not append to open stream in flow in liquibase/liquibase-pro#1738 by @wwillard7800
- DAT-8223: add split statements option to SqlUserDefinedPatternCheck in liquibase/liquibase-pro#1744 by @StevenMassaro
- DAT-17535: up* DATe parameters for regex helper checks in liquibase/liquibase-pro#1716 by @StevenMassaro
- DAT-15916 Give each SQLCMD log file a unique name by adding the change set author and id in liquibase/liquibase-pro#1732 by @wwillard7800
- DAT-16597: fully qualify names when loading DDL of sprocs and funcs in Snowflake in liquibase/liquibase-pro#1724 by @StevenMassaro
🐛 [PRO] Bug Fixes 🛠
- DAT-18207: Do not open report when headless is true in liquibase/liquibase-pro#1843 by @abrackx
- DAT-18052: make check-name case-insensitive for checks bulk-set in liquibase/liquibase-pro#1815 by @StevenMassaro
🤖 [PRO] Security, Driver and Other Updates
25 changes
(#1825) Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 by @dependabot
(#1824) Bump net.snowflake:snowflake-jdbc from 3.16.1 to 3.17.0 by @dependabot
(#1819) Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.17.1 to 2.17.2 by @dependabot
(#1820) Bump com.fasterxml.jackson.core:jackson-* DATabind from 2.17.1 to 2.17.2 by @dependabot
(#1818) Bump com.fasterxml.jackson.core:jackson-annotations from 2.17.1 to 2.17.2 by @dependabot
(#1807) Bump org.apache.groovy:groovy-all from 4.0.21 to 4.0.22 by @dependabot
(#1804) Bump org.junit.vintage:junit-vintage-engine from 5.10.2 to 5.10.3 by @dependabot
(#1803) Bump org.junit:junit-bom from 5.10.2 to 5.10.3 by @dependabot
(#1805) Bump org.projectlombok:lombok from 1.18.32 to 1.18.34 by @dependabot
(#1791) Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by @dependabot
(#1817) Bump com.fasterxml.jackson.core:jackson-core from 2.17.1 to 2.17.2 by @dependabot
(#1816) Bump com.networknt:json-schema-vali* DATor from 1.4.2 to 1.5.0 by @dependabot
(#1786) Bump com.github.xmlet:xsdParser from 1.2.14 to 1.2.15 by @dependabot
(#1794) Bump com.networknt:json-schema-vali* DATor from 1.4.0 to 1.4.2 by @dependabot
(#1783) Bump com.azure:azure-identity from 1.8.1 to 1.12.2 in /liquibase-azure-deps by @dependabot
(#1781) Bump com.microsoft.azure:msal4j from 1.13.8 to 1.15.1 in /liquibase-azure-deps by @dependabot
(#1746) Bump net.snowflake:snowflake-jdbc from 3.16.0 to 3.16.1 by @dependabot
(#1737) Bump org.mariadb.jdbc:mariadb-java-client from 3.3.3 to 3.4.0 by @dependabot
(#1760) Bump org.hsqldb:hsqldb from 2.7.2 to 2.7.3 by @dependabot
(#1758) Bump liquibase/build-logic from 0.7.7 to 0.7.8 by @dependabot
(#1718) Bump org.mockito:mockito-core from 5.11.0 to 5.12.0 by @dependabot
(#1717) Bump com.oracle.* DATabase.jdbc:ojdbc8 from 19.22.0.0 to 19.23.0.0 by @dependabot
(#1736) Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.0 by @dependabot
(#1745) Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 by @dependabot
(#1762) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 by @dependabot
[OSS] Changelog
💥 Breaking Changes
- (#6089) refactor history command to use command framework (DAT-17970) @StevenMassaro
Changes
- (#6042) Fix/windows value DAT-17704 @sayaliM0412
- (#5704) Fix SQL execution issue with endDelimiter '/' and splitStatements @MalloD12
- (#6037) DAT-17939 fix java version to 17 @jandroav
- (#6032) DAT-17939 Add ability to generate Liquibase zip with extensions for any PR @jandroav
- (#6017) Fix issue 5944 @MalloD12
- (#5925) feat: FastCheck refactoring @filipelautert
- (#5802) refactored data clumps @compf
- (#6022) Changed condition to trigger tests @rberezen
- (#5988) High Level API (aka undeprecate Liquibase class) @filipelautert
- (#5929) add detached mode for running H2 (DAT-17654) @StevenMassaro
- (#5993) Move ChangeLogParameters helper methods to ChangeLogParameters class (DAT-17883) @abrackx
- (#5766) Use lombok getter and setter. @asashour
- (#5982) DAT-17770 Package BQ commercial jar inside liquibase tar ball & zip @jandroav
- (#5985) DAT-16264 DevOps :: liquibase build fails on Publish to Maven Central - Nexus @jandroav
- (#5986) fix incorrect line breaks and wrapping when generating table output (DAT-17891 and DAT-17288) @StevenMassaro
- (#5911) Fix sequenceExists check that became case sensitive for Postgresql @davidecavestro
- (#5598) Changeset execution information properties @jasonlyle88
- (#5774) Prevent spurious SET SEARCH_PATH SQL statements for Postgres during update-sql command. Fixes #5316 @mpvvliet
- (#5875) GH issue #5872 improve regex for endDelimiter and rollbackEndDelimiter @wwillard7800
- (#5957) retain original dbms string (DAT-17621) @StevenMassaro
- (#5980) DAT-17768 - Add new directory internal/ext to classpath @filipelautert
- (#5977) fully qualify names of tables when snapshotting unique constraints in Snowflake (DAT-17880) @StevenMassaro
- (#5950) add default constructor + setters to
DatabaseChangeLogLock
@rursprung - (#5961) Make the message be more accurate when an exception occurs during database close @wwillard7800
- (#5967) DAT-17842 @suryaaki2
- (#5898) Do not log stack trace if isExpected flag is true for CommandFailedException @wwillard7800
- (#1826) Prevent silent failures when two "databaseChangeLog" tags are present @danielthegray
- (#5953)
CheckSum
: add getter forstoredCheckSum
@rursprung - (#901) Microsoft SQL Server doesn't support ORDER in sequences @danielthegray
- (#5915) Added connect command to Maven DAT-17411 @wwillard7800
- (#5932) use Commons-IO where possible (DAT-17634) @StevenMassaro
- (#5812) DAT-16825 ...