Liquibase 4.21.0 Release Notes
Liquibase v4.21.0 is a major release.
See GitHub formatted release notes for more information. Full changelog: 4.20.0–4.21.0 (April 13, 2023)
Notable Changes
[PRO] Observability Initiative - Structured Logging
Structured Logging makes Liquibase operation data easily available for automated monitoring and analysis tools to read, query, and act upon in automated workflows. This feature significantly improves the way Liquibase logs its actions and events to make records machine-readable, easily-ingested, and queryable by industry-standard observability and analysis tools. Learn more at Structured Logging.
Command refactoring
- Refactor
update-to-tag
command step (DAT-6641) by @StevenMassaro in #3916 - Refactor
update-to-tag-SQL
command step (DAT-6642) by @StevenMassaro in #3917 - Refactor
Rollback
andRollbackSQL
command by @filipelautert in #3991 - Refactor
ListLocksCommand
by @filipelautert in #3952 - Refactor
ReleaseLocksCommand
by @filipelautert in #3953 - Refactoring of
rollbackCount[SQL]
commands by @filipelautert in #4077 - Refactor
update
,updateSql
,updateCount
,updateCountSql
to use Command framework (DAT-6600/DAT-6601) by @abrackx in #3866 - Refactor
update
to use command framework DAT-6600 by @abrackx in #849
Enhancements
- [PRO] New
runWithSpoolFile
attribute forrunWith
changesets DAT-12881 by @wwillard7800 in #3864 - New update summary output table for update commands DAT-13182 by @wwillard7800 in #3812
Security, Driver and other updates
- [PRO] Bump
logback-classic
from 1.4.5 to 1.4.6 by @dependabot in #884 - [PRO] Bump
flatten-maven-plugin
from 1.3.0 to 1.4.0 by @dependabot in #893 - [PRO] Bump
postgresql
from 42.5.4 to 42.6.0 by @dependabot in #892 - [PRO] Bump
jacoco-maven-plugin
from 0.8.8 to 0.8.9 by @dependabot in #925 - [PRO] Snakeyaml 2.0 by @filipelautert in #858
- Bump
targetMavenVersion
from 3.8.7 to 3.9.0 by @dependabot in #3785 - Bump
actions/cache
from 3.2.6 to 3.3.0 by @dependabot in #3936 - Bump
maven-plugin-plugin
from 3.7.1 to 3.8.1 by @dependabot in #3871 - Bump
maven-compiler-plugin
from 3.10.1 to 3.11.0 by @dependabot in #3870 - Bump
snowflake-jdbc
from 3.13.27 to 3.13.28 by @dependabot in #3863 - Bump
sqlite-jdbc
from 3.40.1.0 to 3.41.0.0 by @dependabot in #3862 - Bump
maven-assembly-plugin
from 3.4.2 to 3.5.0 by @dependabot in #3 - Bump
snowflake-jdbc
from 3.13.28 to 3.13.29 by @dependabot in #3981 - Bump
postgresql
from 42.5.4 to 42.6.0 by @dependabot in #3982 - Bump
maven-resources-plugin
from 3.3.0 to 3.3.1 by @dependabot in #4025 - Bump
mariadb-java-client
from 3.1.2 to 3.1.3 by @dependabot in #4006 - Bump
slf4j-jdk14
from 2.0.6 to 2.0.7 by @dependabot in #3979 - Bump
targetMavenVersion
from 3.9.0 to 3.9.1 by @dependabot in #3980 - Bump
actions/cache
from 3.3.0 to 3.3.1 by @dependabot in #3948 - Bump
maven-deploy-plugin
from 3.1.0 to 3.1.1 by @dependabot in #4026 - Bump
maven-install-plugin
from 3.1.0 to 3.1.1 by @dependabot in #4027 - Bump
sqlite-jdbc
from 3.41.0.0 to 3.41.2.1 by @dependabot in #4028 - Upgrade
maven-javadoc-plugin
version to 3.5.0 by @MalloD12 in #3972 - Release
liquibase-cdi-jakarta
to maven repositories by @DCCSKrezovic in #4001 - Upgrade spring 5 version by @filipelautert in #4015
- Snakeyaml 2.0 by @filipelautert in #3893
- Upgrade AdoptOpenJDK bundled in the JVM installer to version 17.0.6+10 by @MalloD12 in #3900
Fixes
- [PRO] DAT-12881 Implement
runWithSpoolFile
attribute andcreateSpool
property to control use of Oracle spooling by @wwillard7800 in #843 - [PRO] DAT-12814: '
--rollback-on-error
' should returnERROR
and return code 1 when update fails by @StevenMassaro in #905 - [PRO] DAT-13968 Added missing overwrite property by @wwillard7800 in #895
- [PRO] DAT-13667 Make sure exception from SQLCMD is propagated back to be displayed by @wwillard7800 in #902
- [PRO] DAT-14096 Handle existence of a file extension when creating spool/sql/log files by @wwillard7800 in #913
- [PRO] DAT-13994: strip leading slashes from contexts by @StevenMassaro in #921
ChangelogSync
family to CommandStep refactoring by @filipelautert in #3859- Improved concurrency support in ReflectionSerializer by @Dasiu in #3840
- Make Pattern instance variables and avoid recalculating each time by @arturobernalg in #3656
- Java 8 improvements by @arturobernalg in #3712
- Map 'double' to SQL type 'DOUBLE PRECISION' for an Oracle database (CORE-3165) by @maartenc in #3707
- Rollback Snakeyaml default config to allow duplicate keys by @filipelautert in #3939
- Upgrades snakeyaml for installer by @filipelautert in #3943
- DAT-12842 by @sayaliM0412 in #3909
- Improve use of generics in code by @arturobernalg in #3797
- DAT-12842 by @sayaliM0412 in #3963
- Performance Improvement: optimized
DatabaseChangeLog.normalizePath()
by @nvoxland in #3853 - Clear entries from MDC map on scope exit by @amrasarfeiniel in #3927
- [3910] fix missing OSGI manifest entries for service loaders by @jherkel in #3912
- Fixes #3734 MySQL ENUM and SET column type by @nwcm in #3842
- Change
Index.setTable
method to take a Relation parameter DAT-13676 by @wwillard7800 in #3987 - only set the execType to
RERAN
, if the changeset was actually executed by @AlexGruebel in #3926 - Create the change exec listener earlier so that it is available if there is an exception DAT-13939 by @wwillard7800 in #3954
- [3906] Don't break Liquibase if a resolveable hostname is not found by @filipelautert in #3960
- Rename
ON_MISSING_INCLUDE_FILE
configuration and property names by @MalloD12 in #3899 - Load XSD files under OSGI by @ponziani in #3378
- Fixes #3083 MySQL JSON length issue by @nwcm in #3849
- Prevention of NullpointerException (unboxing) in
generate-changelog
with MS SQL Server by @barthel in #3903 - Issue 3619 - Allow control of recursion for
includeAll
viaminDepth
andmaxDepth
attributes by @jasonlyle88 in #3620 - Avoid String concatenation in loop. by @arturobernalg in #3668
- fix
NullPointerException
inResourceAccessor
by @StevenMassaro in #4040 - Lowers message log level. by @filipelautert in #4046
- Remove potentially sensitive information from
--monitor-performance
by @nvoxland in #3640 - Add
mirror-console-messages-to-log
parameter (DAT-13802) by @abrackx in #4032 - Do not ignore
DatabaseException
for Snowflake by @filipelautert in #4034 - Fix
DB-Doc
generation of Unique Constraints for Sybase ASE database. by @crenan in #3911 - Lowers Snakeyaml log level for warning stack traces by @filipelautert in #4062
- Remove unused parameters and local variables by @arturobernalg in #3857
- Do not show update summary for
updateCountSql
orupdateTagSql
DAT-14107 by @wwillard7800 in #4060 - add additional information to
toString
/describe
methods of SQLFileChange (DAT-13789) by @StevenMassaro in #4059 - Update
ShowSummar
y argument reference fromCommandUtil
class to fix failing integration tests by @MalloD12 in #4073 - strip leading slashes from contexts (DAT-13994) by @StevenMassaro in #4071
- Appends the table type to the statement using it. by @filipelautert in #4000
- Update runner image for pr builds (DAT-14192) by @abrackx in #4094
- Do not allow custom change types to execute twice DAT-14051 by @wwillard7800 in #4054
- Disables buffered log service if not using hub by @filipelautert in #3969
- Fixes
UnsupportedOperationException
thrown inSpringResourceAccessor
in Spring Boot 3 Native Image by @justin-tay in #3959 - Do not repeat MDC logging by @filipelautert in #4088
- Implement
Strict
global configuration support to control whether non-emptyauthor
attribute is allowed or not by @MalloD12 in #4044 - Read Snowflake views definitions with the Snowflake-specific query by @LonwoLonwo in #3794
- Fixed #3745 error generation intType when using
autoIncrement=true
with H2 V2 by @quonas in #4008 - log generated
databasechangelogsql
without erroneously incrementing the order executed by 2 (DAT-13680) by @StevenMassaro in #4097 - Remove native executor name property (DAT-13580) by @abrackx in #4108
New Contributors
- @maartenc made their first contribution in #3707
- @amrasarfeiniel made their first contribution in #3927
- @nwcm made their first contribution in #3842
- @AlexGruebel made their first contribution in #3926
- @ponziani made their first contribution in #3378
- @barthel made their first contribution in #3903
- @DCCSKrezovic made their first contribution in #4001
- @justin-tay made their first contribution in #3959
- @quonas made their first contribution in #4008