Liquibase 4.29.0 Release Notes
Liquibase 4.29.0 is a major release. 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.
See GitHub formatted release notes for more information. Full changelog: 4.28.0–4.29.0 (July 25, 2024)
Notable Changes
Liquibase Pro
BigQuery 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 Operation Reports with Google BigQuery so that users will have the efficiency and productivity benefits of Liquibase Pro when working with the platform.
- Learn more: Using Liquibase with Google BigQuery Platforms
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: 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: Custom Policy Checks
Liquibase Pro and Liquibase Open Source
- Java API: undeprecated Liquibase class methods, improved Javadocs and removed deprecated dependencies/sonar warnings as requested by the community in GitHub, the forum and other locations. (#5663)
- Added
liquibase:snapshot
command toliquibase-maven-plugin
(#1379) - Added support for
NULL
placeholders onloadData
(#5966) - When multiple
databaseChangeLog
tags are present an error will now be thrown instead of failing silently (#5963) - Released
liquibase-cli
to Maven, making it available to people that use Liquibase as a library (#6085)
Liquibase Pro Changelog
New Features
- DAT-16671: Custom policy checks in #1671 by @wwillard7800
- DAT-17725: Enable reporting by default, swallow all report generation exceptions in #1763 by @abrackx
- DAT-17871: allow multiple checks to be specified in checks enable/disable commands in #1814 by @StevenMassaro
- DAT-17490: Enhance Update Report to split skipped changesets into their own collapsible section in #1752 by @abrackx
- DAT-17635: add wildcard support for
--check-name
param forchecks run
,show
,bulk-set
in #1787 by @StevenMassaro
Changes
- DAT-17988: PRO:
checks run --checks-output=nonapplicablechecks
is broken in #1792 by @wwillard7800 - DAT-17870: add aliases for parameters in
checks run
,show
, andcreate
commands in #1799 by @StevenMassaro - DAT-17972: abstract report writing to interface for IO in #1795 by @StevenMassaro
- DAT-18086: update minor versions for Azure Uber Jar in #1868 by @filipelautert
- DAT-17654: add test for starting and stopping H2 in detached mode in #1735 by @StevenMassaro
- DAT-17883 Actually expand Java and defaults file properties when using
--property-substitution-enabled
flag in #1782 by @abrackx - DAT-15723: include arguments in generated drop function changes for Postgres in #1765 by @StevenMassaro
- DAT-17621: add
ChangesetAttributesSetTrueOrFalse
check in #1754 by @StevenMassaro - DAT-17657 Handle non-String arguments in Flow in #1721 by wwillard7800
- DAT-16603 Do not append to open stream in flow in #1738 by @wwillard7800
- DAT-8223: add split statements option to
SqlUserDefinedPatternCheck
in #1744 by @StevenMassaro - DAT-17535: update parameters for regex helper checks in #1716 by @StevenMassaro
- DAT-15916 Give each SQLCMD log file a unique name by adding the change set author and id in #1732 by @wwillard7800
- DAT-16597: fully qualify names when loading DDL of sprocs and funcs in Snowflake in #1724 by @StevenMassaro
Bug Fixes
- DAT-18207: Do not open report when headless is true in #1843 by @abrackx
- DAT-18052: make
--check-name
case-insensitive for checks bulk-set in #1815 by @StevenMassaro
Security, Driver, and Other Updates
- (#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-validator
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-validator
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
Liquibase Pro and Liquibase Open Source Changelog
Breaking Changes
- (#6089) refactor
history
command to use command framework (DAT-17970) @StevenMassaro
New Features
- (#5850) Change visibility of useful methods to support custom checks (DAT-16671) @wwillard7800
- (#1379) Added
liquibase:snapshot
command to theliquibase-maven-plugin
@malikin - (#6036) feat: allow setting row-level dependency tracking in the create table statement on Oracle Database @matheusviegas
- (#6085) feat: release
liquibase-cli
package to maven @filipelautert - (#5975) Update diff summary results in mdc to not be recalculated (DAT-17725) @abrackx
- (#6099) chore: include
slf4j-simple
and pin version to allow dependabot to upgrade it for us @filipelautert - (#6046) feat: add current java version to Banner @filipelautert
- (#6039) command argument aliases that can be printed to help (DAT-17870) @StevenMassaro
- (#5965) Do not show message for bigquery database (DAT-17497) @vitaliimak
- (#5966) Add support for
NULL
placeholders on loadData @davidecavestro - (#5924) Optimize parsing big xml files @asolntsev
- (#6021) feat: Add dependencies for apache commons libraries that are being used @filipelautert
- (#6034) feat: Add
status
command output + tests to make sure that it runs at same time thanupdate
. @filipelautert
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 toChangeLogParameters
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 duringupdate-sql
command. Fixes #5316 @mpvvliet - (#5875) GH issue #5872 improve regex for
endDelimiter
androllbackEndDelimiter
@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 istrue
forCommandFailedException
@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 ::
RawSqlStatement
refactoring @MalloD12 - (#5922) generated
addPrimaryKey
changes should not include column direction (DAT-17467) @StevenMassaro - (#5939) Adding property to build so that
liquibase-scripting
shows up in the tarball @wwillard7800 - (#5941) Run-Test configuration updated to avoid building
jakarta.enterprise
jakarta.enterprise.cdi
api with Java 11 @MalloD12 - (#5903) [DAT-16377] Verify if supports method is implemented in a change to prevent unexpected behaviors @filipelautert
- (#5919) fully qualify names for Snowflake unique constraints (DAT-16598) @StevenMassaro
- (#5937) DAT-17536: Update
weekly-integration-tests.yml
@sayaliM0412 - (#5926) throw exception from
diff-changelog
when failure occurs (DAT-17623) @StevenMassaro
Bug Fixes
- (#6117) Remove unneeded inclusion of
commons-io
inliquibase-core
pom.xml
@wwillard7800 - (#6097) Fixed performance issue with
valueBlobFile
on Postgres databases introduced in v4.18.0 @Shauren - (#6083) Fix
defaultValueComputed
insideaddColumn
producing bad SQL with Postgres @micopiira - (#6045) Add
osgi.serverloader
manifest header entries for liquibase.changelog.visitor.ValidatingVisitorGenerator #6040 fix @steinarb - (#6024) fix #6019
NullPointerException
when usingCharType
orVarcharType
with H2 database @cchoz - (#6015) Fix OSGi import for
org.apache.commons.io
@vkolomeyko - (#6041)
Rawsqlstatement
refactoring fixes @MalloD12 - (#6027) chore: allow slf4j library to be included in Liquibase zip/installer @filipelautert
- (#5958) Clone system properties to prevent
ConcurrentModificationException
@Alf-Melmac
Security, Driver, and Other Updates
- (#6028) Bump
spring.version
from 5.3.28 to 5.3.37 @dependabot - (#6013) Bump
org.firebirdsql.jdbc:jaybird
from 5.0.4.java8 to 5.0.5.java8 @dependabot - (#6029) Bump
org.apache.maven.plugins:maven-jar-plugin
from 3.4.1 to 3.4.2 @dependabot - (#6011) Bump
org.apache.maven.plugins:maven-failsafe-plugin
from 3.2.5 to 3.3.0 @dependabot - (#6018) Bump
targetMavenVersion
from 3.9.7 to 3.9.8 @dependabot - (#6012) Bump
org.apache.maven.plugins:maven-surefire-plugin
from 3.2.5 to 3.3.0 @dependabot - (#5952) Bump
net.snowflake:snowflake-jdbc
from 3.16.0 to 3.16.1 @dependabot - (#5969) Bump
org.hsqldb:hsqldb
from 2.7.2 to 2.7.3 @dependabot - (#5951) Bump
org.xerial:sqlite-jdbc
from 3.45.3.0 to 3.46.0.0 @dependabot - (#5971) Bump
org.apache.maven.plugins:maven-javadoc-plugin
from 3.6.3 to 3.7.0 @dependabot - (#5973) Bump
org.apache.maven.plugins:maven-shade-plugin
from 3.5.3 to 3.6.0 @dependabot - (#5972) Bump
org.apache.maven.plugins:maven-plugin-plugin
from 3.13.0 to 3.13.1 @dependabot - (#5970) Bump
org.sonarsource.scanner.maven:sonar-maven-plugin
from 3.11.0.3922 to 4.0.0.4121 @dependabot - (#5964) Bump
org.apache.maven.plugins:maven-enforcer-plugin
from 3.4.1 to 3.5.0 @dependabot - (#5959) Bump
liquibase/build-logic
from 0.7.7 to 0.7.8 @dependabot - (#5949) Bump
org.assertj:assertj-core
from 3.25.3 to 3.26.0 @dependabot - (#5948) Bump
targetMavenVersion
from 3.9.6 to 3.9.7 @dependabot - (#5900) Bump
com.oracle.database.jdbc:ojdbc8
from 19.22.0.0 to 19.23.0.0 @dependabot - (#5931) Bump
org.codehaus.mojo:build-helper-maven-plugin
from 3.5.0 to 3.6.0 @dependabot - (#5889) Bump
info.picocli:picocli
from 4.7.5 to 4.7.6 @dependabot - (#5895) Bump
org.testcontainers:testcontainers-bom
from 1.19.7 to 1.19.8 @dependabot - (#6090) Bump
org.apache.maven.plugins:maven-surefire-plugin
from 3.3.0 to 3.3.1 @dependabot - (#6091) Bump
org.apache.maven.plugins:maven-failsafe-plugin
from 3.3.0 to 3.3.1 @dependabot - (#6092) Bump
actions/setup-python
from 5.1.0 to 5.1.1 @dependabot - (#6088) Bump
org.assertj:assertj-core
from 3.26.0 to 3.26.3 @dependabot - (#6048) Bump
junit-jupiter.version
from 5.10.2 to 5.10.3 @dependabot - (#6047) Bump
org.junit.jupiter:junit-jupiter
from 5.10.2 to 5.10.3 @dependabot - (#6043) Bump
org.apache.commons:commons-text
from 1.11.0 to 1.12.0 @dependabot - (#6049) Bump
org.projectlombok:lombok
from 1.18.32 to 1.18.34 @dependabot - (#6050) Bump
org.junit.platform:junit-platform-suite
from 1.10.2 to 1.10.3 @dependabot - (#6060) Bump
groovy.version
from 4.0.21 to 4.0.22 @dependabot - (#6059) Bump
robinraju/release-downloader
from 1.10 to 1.11 @dependabot - (#6026) Bump
Spring-core version
to 5.3.37 @filipelautert - (#5810) Bump
jakarta.enterprise:jakarta.enterprise.cdi-api
from 4.0.1 to 4.1.0 @dependabot - (#5790) Bump
stCarolas/setup-maven
from 4.5 to 5 @dependabot - (#5824) Bump
peter-evans/repository-dispatch
from 1 to 3 @dependabot