Liquibase v4.25.0
Liquibase 4.25.0 is a major release
Important
For Liquibase Pro native executor users, if you've experienced checksum issues in Liquibase 4.19.0 through 4.23.1, please skip those releases and upgrade to this release, Liquibase 4.25.0.
Note
See the Liquibase 4.25.0 Release Notes for the complete set of release information.
Note
In one Liquibase 4.25.0 file, the version was set as "release-SNAPSHOT" when it should have been "4.25.0". This file, liquibase-core-4.25.0.jar/pom.xml, has been updated. This text-only change contains no code or functional impact, but does result in a different checksum.
Notable Changes
[PRO]
Observability: Drift Reports
- With our new HTML format, you can quickly see the differences between databases, including detailed object differences. This easy-to-read and shareable report makes it faster than ever to detect and fix database drift.
- Learn more https://docs.liquibase.com/drift-reports
Quality Checks Packages
- You can now simplify Quality Checks deployment and management by creating Quality Checks Packages, which allow you to run multiple sets of checks with one command.
- Learn more https://docs.liquibase.com/commands/quality-checks/checks-packages/home.html
Observability: Structured Logging Enhancement
- Thanks to your feedback, we’ve added a new set of keys that will be included with every structured log to improve data analysis capabilities.
- Learn more at https://docs.liquibase.com/tools-integrations/observability/structured-logging-keys.html
[PRO] Changelog
- DAT-15455 Refactor ChangelogRewriters to follow general Factory approach by @vitaliimak in liquibase/liquibase-pro#1195
- DAT-15473: Better visibility for connection url in drift report by @abrackx in liquibase/liquibase-pro#1229
- Downgrades Oracle version by @filipelautert in liquibase/liquibase-pro#1237
- DAT-15740: Updates to drift report header formatting. by @abrackx in liquibase/liquibase-pro#1232
- DAT-15741: Add legend, improve spacing by @abrackx in liquibase/liquibase-pro#1236
- DAT-15860: obfuscate user/pass in urls entered in MDC by @StevenMassaro in liquibase/liquibase-pro#1233
- DAT-15717 Implement writing report to remote locations like S3 by @wwillard7800 in liquibase/liquibase-pro#1219
- DAT-15671: store MDC separately for each scope by @StevenMassaro in liquibase/liquibase-pro#1243
- move findKeyInMapIgnoreCase to CollectionUtil by @StevenMassaro in liquibase/liquibase-pro#1286
- DAT-15902: Avoid partial rollback for postgresql and mssql by @MalloD12 in liquibase/liquibase-pro#1261
- DAT-15870: include options for checks-scope in checks run help output by @StevenMassaro in liquibase/liquibase-pro#1298
- DAT-15871: Per object sql diffs by @abrackx in liquibase/liquibase-pro#1307
- DAT-15868: don't line wrap checks run output by @StevenMassaro in liquibase/liquibase-pro#1297
- DAT-15141: show update summary table when update fails by @StevenMassaro in liquibase/liquibase-pro#1299
- DAT-15949: Use command arguments not global arguments for drift detection. by @abrackx in liquibase/liquibase-pro#1308
- DAT-15679: gracefully handle situation where comments cannot be removed from sql while running checks by @StevenMassaro in liquibase/liquibase-pro#1322
- move file-replacer-maven-plugin definition to maven central by @StevenMassaro in liquibase/liquibase-pro#1329
- DAT-15960/DAT-7923: Add UserDefinedLabelCheck, UserDefinedContextCheck by @abrackx in liquibase/liquibase-pro#1321
- unregister DaticalTrueLicenseService after registering temporary license service by @StevenMassaro in liquibase/liquibase-pro#1341
- log license service exceptions by @StevenMassaro in liquibase/liquibase-pro#1338
- DAT-15553: Quality Checks Packages by @StevenMassaro in liquibase/liquibase-pro#1179
- DAT-16099: update checks file validation message by @StevenMassaro in liquibase/liquibase-pro#1345
- DAT-16196: show report arguments for diff command by @StevenMassaro in liquibase/liquibase-pro#1344
- DAT-16114: Use new report design for drift report by @abrackx in liquibase/liquibase-pro#1336
- DAT-16079 Implementing ProChangeSetService by @wwillard7800 in liquibase/liquibase-pro#1323
- DAT-16117: Add aliases for report args by @abrackx in liquibase/liquibase-pro#1347
- Add label to dependabot prs so we don't need to do it manually by @abrackx in liquibase/liquibase-pro#1348
- Aggregate dependabot prs by @abrackx in liquibase/liquibase-pro#1349
🤖 [PRO] Security, Driver and Other Updates
17 changes
- Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.9.1.2184 to 3.10.0.2594 by @dependabot in liquibase/liquibase-pro#1283
- Bump com.fasterxml.jackson.core:jackson-databind from 2.15.1 to 2.15.3 by @dependabot in liquibase/liquibase-pro#1303
- Bump com.fasterxml.jackson.core:jackson-annotations from 2.15.1 to 2.15.3 by @dependabot in liquibase/liquibase-pro#1302
- Bump com.fasterxml.jackson.dataformat:jackson-dataformat-yaml from 2.15.2 to 2.15.3 by @dependabot in liquibase/liquibase-pro#1304
- Bump com.fasterxml.jackson.core:jackson-core from 2.15.1 to 2.15.3 by @dependabot in liquibase/liquibase-pro#1300
- Bump com.fasterxml.jackson.module:jackson-module-jaxb-annotations from 2.15.1 to 2.15.3 by @dependabot in liquibase/liquibase-pro#1301
- Bump com.h2database:h2 from 2.2.222 to 2.2.224 by @dependabot in liquibase/liquibase-pro#1284
- Bump org.apache.maven.plugins:maven-shade-plugin from 3.4.1 to 3.5.1 by @dependabot in liquibase/liquibase-pro#1249
- Bump info.picocli:picocli from 4.7.3 to 4.7.5 by @dependabot in liquibase/liquibase-pro#1188
- Bump docker/login-action from 2 to 3 by @dependabot in liquibase/liquibase-pro#1230
- Bump commons-codec from 1.15 to 1.16.0 by @dependabot in liquibase/liquibase-pro#1058
- Bump jackson-dataformat-yaml from 2.15.1 to 2.15.2 by @dependabot in liquibase/liquibase-pro#1016
- Bump org.projectlombok:lombok from 1.18.28 to 1.18.30 by @dependabot in liquibase/liquibase-pro#1281
- Bump ch.qos.logback:logback-classic from 1.4.9 to 1.4.11 by @dependabot in liquibase/liquibase-pro#1282
- Bump liquibase/build-logic from 0.4.4 to 0.4.7 by @dependabot in liquibase/liquibase-pro#1290
- Bump liquibase/build-logic from 0.4.7 to 0.4.8 by @dependabot in liquibase/liquibase-pro#1291
- Bump com.github.spullara.mustache.java:compiler from 0.9.10 to 0.9.11 by @dependabot in liquibase/liquibase-pro#1294
[OSS] Changelog
🚀 New Features
- (#5182) Invoke database.commit only if needed (DAT-16225) @filipelautert
- (#4577) SQL Anywhere: Recompile all views after last change of update @mkarg
- (#5117) Implementing a ChangeSetService for modification of model objects DAT-16079 @wwillard7800
- (#5148) Implement global end delimiter prioritized flag DAT-16166 @wwillard7800
- (#4584) Allow changing default UI service + change Spring default UI service allowing log level control @filipelautert
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#5077) showSummaryOutput property added for update command @MalloD12
- (#4991) Update MySQL default value handling to allow defaultValueComputed on MySQL 5.7 @Axel-1
- (#5042) Makes picocli dependency optional for core @filipelautert
- (#5047) show failed changesets in verbose show-summary output (DAT-15141) @StevenMassaro
- (#4301) Simplified expressions, removed redundant expressions, fixed javadocs @anton-erofeev
- (#4104) Support system properties as a way of providing configuration options to the CLI @jccampanero
- (#4919) Add '@deprecated' annotation to update() methods @tati-qalified
- (#4996) Check for other duplicate JAR files in classpath DAT-15963 @wwillard7800
- (#4463) Split calculate-checksum parameter changeSetIdentifier into changeSetPath / changesetId / changeSetAuthor @JulienMa94
- (#4893) Quality Checks Packages (DAT-15553) @StevenMassaro
Changes
- (#567) Improve deferrable validation for AddForeignKey constraints generator @alero
- (#5101) Remove a forgotten
.
inREADME.md
@Benjamin-Loison - (#4959) Remove unnecessary conditions in IndexComparator @asashour
- (#5037) chore(build-branch.yml): update workflow to only trigger on labeled p… @jandroav
OSS: Sonar Refactor @jandroav
- (#4904) add empty mdc values to all commands (DAT-15671) @StevenMassaro
- (#4984) DatabaseTestSystem: commit after executing statement @StevenMassaro
🐛 Bug Fixes 🛠
- (#5185) generate deployment ID for all update family commands (DAT-16240) @StevenMassaro
- (#5165) Do not warn when env var matches argument alias (DAT-16117) @abrackx
- (#5099) Apply SQL visitors to prepared SQL @mches
- (#5080) Fix tests DAT-16053 @wwillard7800
- (#5141) Fix Liquibase changeset relative path check @filipelautert
- (#5134) Makes sure that precondition onErrorMessage and onFailMessage are logged when an error happens @filipelautert
- (#5143) load services using ServiceLocator if allInstances is empty @yairogen
- (#5087) Handles snapshot of Oracle temporary tables + ignore queue tables @filipelautert
- (#4801) CreateIndex associatedWith property deserialization issue @spacepost
- (#5127) 5126 fix extra column info for mariadb database @LonwoLonwo
- (#5122) Fix Liquibase.validate scope execution. @filipelautert
- (#5078) Fix Liquibase.rollback scope execution @filipelautert
- (#5090) Fixed changelog parsing performance issue @filipelautert
- (#4424) Fix custom SQL generation issue - Github issue 4369 @wwillard7800
- (#5062) Modify MSSQL query for when obtaining autoincrement column information GH-4719 @wwillard7800
- (#5054) Handle duplicates of the commercial JAR DAT-16059 @wwillard7800
- (#5039) Add changelog file path to upToDateFastCheck cache key (#4891) @ggwadera
- (#4994) execute-sql command logic updated to not display select columns sorted @MalloD12
- (#4664) Fixed: #4662 - PostgreSQL: Doesn't support (n CHAR) syntax, but only (n) syntax. @mkarg
- (#5064) Handle some potential NPEs @wwillard7800
- (#5028) Fix some typos. @asashour
- (#4754) Corrected determination of the DB2 version for the support of BOOLEAN columns. (patch for #4723) @haltenwe
- (#4549) generateChangelog creates crippled view definition SQL @mkarg
- (#4985) Fix liquibase bat @erasmussen-first
- (#4995) [DAT-16006] Fixing v8 Checksum calculation issue when using sql dbms attribute @filipelautert
- (#4988) Do not remove relation attribute for column if the relation object has a snapshot ID DAT-15709 @wwillard7800
- (#5007) Handle CREATE OR ALTER VIEW when replaceIfExists = true DAT-14147 @wwillard7800
- (#5009) Do not convert if global flag is false DAT-15745 @wwillard7800 - (#4982) DAT-15880 @sayaliM0412
- (#4945) Filter additional credential-like strings in the URL sanitization process DAT-9973 @wwillard7800
🤖 Security, Driver and Other Updates
16 changes
- (#5095) Bump org.glassfish.jaxb:jaxb-core from 4.0.3 to 4.0.4 @dependabot
- (#5140) Bump org.xerial:sqlite-jdbc from 3.43.0.0 to 3.43.2.2 @dependabot
- (#4989) Bump org.codehaus.gmavenplus:gmavenplus-plugin from 3.0.0 to 3.0.2 @dependabot
- (#5020) Bump targetMavenVersion from 3.9.4 to 3.9.5 @dependabot
- (#4918) Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.0 @dependabot
- (#5096) Bump org.apache.maven.plugins:maven-plugin-plugin from 3.9.0 to 3.10.1 @dependabot
- (#5135) Update installer JDK @filipelautert
- (#4927) DAT-15922 FOSSA Support @jnewton03
- (#5026) Bump org.jboss.weld.se:weld-se-core from 5.1.1.Final to 5.1.2.Final @dependabot
- (#4839) Bump actions/checkout from 3 to 4 @dependabot
- (#4914) Bump org.sonarsource.scanner.maven:sonar-maven-plugin from 3.9.1.2184 to 3.10.0.2594 @dependabot
- (#5001) Bump org.testcontainers:testcontainers-bom from 1.19.0 to 1.19.1 @dependabot
- (#4860) Bump actions/cache from 3.3.1 to 3.3.2 @dependabot
- (#4866) Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.0 to 3.4.1 @dependabot
- (#4949) Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 @dependabot
- (#4929) Bump com.h2database:h2 from 2.2.222 to 2.2.224 @dependabot
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