LiquiBase Changelog

What's new in LiquiBase 4.27.0

Apr 2, 2024
  • Notable Changes:
  • [PRO]:
  • Liquibase DATABASECHANGELOGHISTORY table: See all changes that have been applied to your database
  • With the new DatabaseChangeLogHistory (DBCLH) Table, get a complete history of changes made to your database through Liquibase operations, including updates, rollbacks, dropAlls, tags, changelogsyncs, and repeated updates to the same ChangeSet. The DBCLH table is disabled by default, so Users must turn it on to start capturing historical data.
  • Learn more https://docs.liquibase.com/databasechangeloghistory
  • Quality Checks Chains: Perform multiple policy evaluations with a single Quality Check
  • Chain multiple Quality Checks together with logic conditionals (AND, OR, and NOT) for more flexibility to perform multiple evaluations in a single check. Useful to confirm complex best practices or governance issues. Check Chains are run like traditional single-condition existing Quality Checks
  • Learn more https://docs.liquibase.com/quality-checks
  • Observability: Rollback Reports: Understand and share the data on the execution of rollback commands
  • Easily scan and understand a high-level overview of the ChangeSets rolled back. Get a detailed view of both successful and failed rollbacks. Collaborate with your team with shareable report in PDF format
  • Learn more https://docs.liquibase.com/observability
  • Breaking Change:
  • (#5584) throw exception if drop all fails (DAT-16718) @StevenMassaro
  • [PRO] Changelog:
  • DAT-16798: Style rollback reports in liquibase/liquibase-pro#1534 by @abrackx
  • DAT-16857: record operationOutcome in MDC in liquibase/liquibase-pro#1606 by StevenMassaro
  • DAT-16853: Chained checks reports in liquibase/liquibase-pro#1580 by @abrackx
  • DAT-16127 Checks chaining implementation in liquibase/liquibase-pro#1500 by wwillard7800
  • DAT-16178: database changelog history record-keeping in liquibase/liquibase-pro#1334 by StevenMassaro
  • DAT-16092 Implemented checkStatus argument for filtering by enabled/disabled status in liquibase/liquibase-pro#1577 by wwillard7800
  • DAT-17187: Add check rollbacks to runtime metadata in https://github.com/liquibase/liquibase-pro/pull/ by @abrackx
  • DAT-16920: add path filter option to SqlUserDefinedPatternCheck in liquibase/liquibase-pro#1575 by StevenMassaro
  • DAT-17072 Added new autoEnableNewChecks option and fix bug with autoUpdate in liquibase/liquibase-pro#1566 by wwillard7800
  • DAT-16420: add propertySubstitutionEnabled flag to checks run command in liquibase/liquibase-pro#1569 by StevenMassaro
  • DAT-16845: exclude unnecessary directories/files from built jar in liquibase/liquibase-pro#1565 by StevenMassaro
  • DAT-15170: add EndDelimiterExistsWhenPatternExists QC in liquibase/liquibase-pro#1517 by StevenMassaro
  • DAT-16559: Add copy url button to checks run and update reports in liquibase/liquibase-pro#1521 by @abrackx
  • DAT-16770: Fix table styling in details by check in liquibase/liquibase-pro#1531 by @abrackx
  • DAT-16683 Implement snapshot filters for snapshotReference command in liquibase/liquibase-pro#1506 by wwillard7800
  • DAT-15980 Added new CheckRunInTransactionValue rule in liquibase/liquibase-pro#1516 by wwillard7800
  • DAT-16544 Fix issue with bad SQL generation in liquibase/liquibase-pro#1512 by wwillard7800
  • DAT-14830: warn if running checks bulk-set without arguments in liquibase/liquibase-pro#1592 by StevenMassaro
  • DAT-16105: improve interactive prompting through Powershell ISE in liquibase/liquibase-pro#1581 by StevenMassaro
  • DAT-16765: throw exception when using init copy on non-s3 paths in liquibase/liquibase-pro#1539 by StevenMassaro
  • PD-3246: init copy --source/--target descriptions in liquibase/liquibase-pro#946 by adrian-velonis1
  • DAT-16271: properly handle creating procedure with no args and external name in liquibase/liquibase-pro#1494 by StevenMassaro
  • DAT-16567 Handle logFormat when set in a flow file in liquibase/liquibase-pro#1522 by wwillard7800
  • DAT-16306: wrap INITCOND of Postgres aggregate functions in single quotes in liquibase/liquibase-pro#1502 by StevenMassaro
  • ?? [PRO] Security, Driver and Other Updates:
  • 39 change
  • Bump liquibase/build-logic from 0.6.4 to 0.6.6 dependencies github_actions by dependabot bot
  • [OSS] Changelog:
  • ?? Breaking Changes:
  • (#5584) throw exception if drop all fails (DAT-16718) @StevenMassaro
  • ?? New Features:
  • (#5692) Add force option to dropAll DAT-16418 @wwillard7800
  • (#5630) DAT-16798: Add new parameters to rollback report @abrackx
  • (#5649) Add CustomChangeChecksum interface @robinjhector
  • (#5147) database changelog history record-keeping (DAT-16178) @StevenMassaro
  • (#5709) feat: add commons-lang3 as a required dependency for core @filipelautert
  • (#5670) 5507-performance_improvements @filipelautert
  • (#5667) Exception handler for when a service cannot be loaded @filipelautert
  • (#5650) DAT-16513 - Upgrade installer Java version to 21 @filipelautert
  • (#5456) Extended formatted sql preconditions by table-/viewExists @JulienMa94
  • (#5597) Format spring package. @asashour

New in LiquiBase 4.26.0 (Feb 8, 2024)

  • [PRO] Changelog:
  • DAT-16531 Add labels, contexts, rollback-on-error to update reports runtime info in liquibase/liquibase-pro#1499 by @abrackx
  • DAT-15455 Refactor ChangelogRewriters to follow general Factory approach in liquibase/liquibase-pro#1195 by @vitaliimak
  • DAT-16675 add aliases for init copy and project in liquibase/liquibase-pro#1488 by @StevenMassaro
  • DAT-16640 add rollbackSqlFile to formatted SQL changelog parsingin liquibase/liquibase-pro#1501 by @StevenMassaro
  • DAT-16054 Implement filters for snapshot command in liquibase/liquibase-pro#1440 by @wwillard7800
  • DAT-16282 Implement MVEL expression and added tests in liquibase/liquibase-pro#1382 by @wwillard7800
  • DAT-16684 Checks run report tweaks, add check packages info in liquibase/liquibase-pro#1491 by @abrackx
  • DAT-16273 Show fully qualified path in console when generating report in liquibase/liquibase-pro#1483 by @abrackx
  • DAT-13042 Parse LDAP-style URL to create SQLPLUS connection string in liquibase/liquibase-pro#1473 by @wwillard7800
  • DAT-16237 Styled checks run report in liquibase/liquibase-pro#1481 by @abrackx
  • DAT-16349 Make sure diffChangelog respects drift arguments in liquibase/liquibase-pro#1461 by @wwillard7800
  • DAT-16110 Implementation of regex helper checks in liquibase/liquibase-pro#1330 by @wwillard7800
  • DAT-16500 do not clear a subset of MDC keys when scope exits in liquibase/liquibase-pro#1447 by @StevenMassaro
  • DAT-16477 Append command name to default report name in liquibase/liquibase-pro#1456 by @abrackx
  • DAT-16482 Correctly set logLevel on the Liquibase logger in liquibase/liquibase-pro#1433 by @wwillard7800
  • DAT-16397 add changeset identifier to exceptions thrown from LiquibaseSqlParser in liquibase/liquibase-pro#1443 by @StevenMassaro
  • DAT-16534 Fix issue with generateChangelog and diffChangelog in liquibase/liquibase-pro#1446 by @wwillard7800
  • DAT-16330 Remove drift report mode parameter in liquibase/liquibase-pro#1423 by @wwillard7800
  • DAT-13864 New pending changeset filter for checks run in liquibase/liquibase-pro#1419 by @wwillard7800
  • DAT-16332 Add pending changes to update report in liquibase/liquibase-pro#1438 by @abrackx
  • [PRO] Security, Driver and Other Updates:
  • Bump com.oracle.database.jdbc:ojdbc8 from 19.20.0.0 to 19.21.0.0 by dependabot bot
  • [OSS] Changelog:
  • New Features:
  • (#5525) Add labels, context and rollback on error info to report (DAT-16531) @abrackx
  • (#5490) DAT-16675: add support for command aliases @StevenMassaro
  • (#5406) Allow snapshot control creation to be overridden for snapshot filters DAT-16054 @wwillard7800
  • (#5256) Added exclusion for MVEL DAT-16282 @wwillard7800
  • (#5336) add default constructor + setters to RanChangeSet & related classes @rursprung
  • (#5340) Fixes #2352 by adding support for loading embedded jar files @hayeskl
  • (#5164) Write changelog only if changes exist @brachi-wernick
  • (#5360) Introduce support for primitive types in new changes @fbiville
  • (#5274) Use mariadb UUID when specify UUID type @mohamed-ahrrass-nw
  • (#5413) add changeset identifier to exceptions thrown from LiquibaseSqlParser (DAT-16397) @StevenMassaro
  • (#5402) Adds pending changesets to update report (DAT-16332) @abrackx
  • (#3581) Support create table if not exists @taeyeon-Kim
  • (#4635) generateChangelog optionally creates runOnChange=true and replaceIfExists=true for createView changes @mkarg
  • Changes:
  • (#5329) Support runWith executors committing after the change set completes @dzeigler
  • (#5452) Log the exception in case of failure in ChangeSet.execute @bignoncedric
  • (#5043) Improve support for DB2[z] empty table precondition @MichaelKern-IVV
  • (#5424) Moved saved_state/compareGenerateSql.. directory from java source to resources bundle @MalloD12
  • (#5462) map testcontainers to random available host port @StevenMassaro
  • (#5457) prevent multiple databases in test classes @StevenMassaro
  • (#5416) do not clear a subset of MDC keys when scope exits (DAT-16500) @StevenMassaro
  • (#5417) switch integration tests to use h2 where possible (DAT-16015) @StevenMassaro
  • (#5347) Added extra space for command help arguments display DAT-13864 @wwillard7800
  • Bug Fixes:
  • (#5522) MariaDB boolean: back to TINYINT(1) instead of TINYINT (MySQL) @famod
  • (#5524) Don't execute CustomSqlChanges to generate logs @Alf-Melmac
  • (#5498) Add missing OSGI settings @filipelautert
  • (#5391) fix SQLFileChange.generateCheckSum() to calculate checksum without property substitution @jglass524
  • (#5398) Fix issue #3516 addColumn ignores deleteCascade=true @andreiyusupau
  • (#5479) do not skip over duplicate tags when doing rollback (DAT-16277) @StevenMassaro
  • (#5484) Workaround failing test containers startup for mysql by falling back to previous version. @abrackx
  • (#5397) Fix DatabaseFactory db loading when Database implementation is specified (fix for Issues 5371 & 5396 ) @dhsmith1001
  • (#5202) 4464 fix generated default column value using in PostgreSQL and Oracle for char/clob data types @LonwoLonwo
  • (#5350) Fix getSerializableFieldValue when dealing with rollback object @MalloD12
  • (#5414) Fix NPE in generateChangelog and diffChangelog DAT-16534 @wwillard7800
  • (#5267) fix #5266: comma separated dbms-attribute for createProcedure-change triggers validation-check @jclohmann

New in LiquiBase 4.25.1 (Jan 3, 2024)

  • Notable Changes:
  • PRO:
  • Observability: Update Reports:
  • These reports give you insights into the status of your database and enable you to quickly find and resolve errors in your automation pipeline. These reports can also help you detect patterns of failures that you can catch with Quality Checks or use to inform internal training and education for your teams.
  • Observability: Drift Report extended to diffchangelog command:
  • 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 Drift Reports
  • Observability: Structured Logging Enhancement:
  • Thanks to your feedback, we’ve added a new set of keys that improves data analysis capabilities surrounding exceptions and Quality Checks.
  • Learn more at Structured Logging
  • Convenience: new liquibase connect command:
  • A new command to test your database's url, username, and password are all configured correctly and that Liquibase can reach your database -- and no changelog required.
  • Learn more liquibase connect command
  • Convenience: Global endDelimiters:
  • Global endDelimiters decrease the friction of incorporating work from different teams and save you time from the manual process of updating existing code.
  • Learn more Global endDelimiters

New in LiquiBase 4.25.0 (Nov 14, 2023)

  • 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
  • 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 . in README.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

New in LiquiBase 4.24.0 (Oct 3, 2023)

  • Notable Changes:
  • [PRO]:
  • Liquibase Flow users will enjoy several requested enhancements and closer integration with other Pro capabilities such as Quality Checks and Structured Logging, including more robust injection of custom user data into Structured Logging from Flow operations, increased scope of variables from flowfile into nested flowfiles, and Quality Checks exit codes bubbling through to the Flow operations which invoke them. Learn more at Liquibase Docs Release Notes[https://docs.liquibase.com/start/release-notes/home.html]
  • [OSS]:
  • The generate-changelog and diff-changelog commands now support --labels and --contextFilter options. The specified values will be included as attributes for each generated changeset.
  • (#4660) Add labels/contexts arguments to diffChangelog and generateChangelog change sets DAT-14793 @wwillard7800
  • The includeAll tag now supports an optional endsWithFilter attribute that causes Liquibase to only include files ending with the value specified by the new attribute. All other files located by the specified path attribute will be skipped and will not be included as deployable changes.
  • (#4402) New Feature: Add an endsWithFilter attribute to includeAll @jasonlyle88
  • Changes:
  • [PRO]:
  • DAT-15343 Allow logFile and logLevel to be specified as globalArgs to Action by @wwillard7800 in liquibase/liquibase-pro#1172
  • DAT-15799: show flow-specific userMetadata in all log messages executed as part of Flow command execution by @StevenMassaro in liquibase/liquibase-pro#1202
  • DAT-15130 Make Flow variables available in called flows by @wwillard7800 in liquibase/liquibase-pro#1178
  • Add an explicit FlowFile constructor by @wwillard7800 in liquibase/liquibase-pro#1207
  • DAT-15753 Handle flow exit code when both drift and QC checks are run by @wwillard7800 in liquibase/liquibase-pro#1184
  • DAT-15455 Refactor ChangelogRewriters to follow general Factory approach by @vitaliimak in liquibase/liquibase-pro#1195
  • DAT-15860: obfuscate user/pass in urls entered in MDC by @StevenMassaro in liquibase/liquibase-pro#1233
  • DAT-10223: use syntax which allows for parsing multiple SQL statements in a single changeset by @StevenMassaro in liquibase/liquibase-pro#1160
  • DAT-12612: add Lombok by @StevenMassaro in liquibase/liquibase-pro#1166
  • DAT-15572: custom log data key-value pairs are injected multiple times per operation by @StevenMassaro in liquibase/liquibase-pro#1150
  • DAT-15214: custom log data property substitution using environment variables by @StevenMassaro in liquibase/liquibase-pro#1165
  • DAT-15471 Implement a global severity for drift exit code by @wwillard7800 in liquibase/liquibase-pro#1163
  • DAT-12827 Always honor end delimiter for SQLPLUS by @wwillard7800 in liquibase/liquibase-pro#1169
  • DAT-15367 Added build directory for Azure dependencies by @wwillard7800 in liquibase/liquibase-pro#1121
  • DAT-15749: do not serialize warningMessage to checks settings file by @StevenMassaro in liquibase/liquibase-pro#1180
  • DAT-15511 Use the checks exit code when running in Flow by @wwillard7800 in liquibase/liquibase-pro#1173
  • DAT-15774: add missing short name, name and description when upgrading checks settings config file by @StevenMassaro in liquibase/liquibase-pro#1190
  • DAT-15845: Fix drift detection configuration key hierarchy by @abrackx in liquibase/liquibase-pro#1216
  • DAT-14924 Set the default schema name before running by @wwillard7800 in liquibase/liquibase-pro#1206
  • DAT-15857 Remember the original value of splitStatements for native executor change checksum by @wwillard7800 in liquibase/liquibase-pro#1223
  • Downgrades Oracle version by @filipelautert in liquibase/liquibase-pro#1237
  • Xsd and flow file for 4.24.0 by @filipelautert in liquibase/liquibase-pro#1266
  • [OSS]:
  • (#4574) Implement showSummaryOutput parameter @EvaristeGalois11
  • (#4395) Improve update summary usability @EvaristeGalois11
  • (#4697) Replacing special constants specific to SQL Anywhere by commonly supported JDBC Escape Functions @mkarg
  • (#4805) include tag in history tabular output (DAT-15244) @StevenMassaro
  • (#4692) add update report (DAT-15576) @StevenMassaro
  • (#4352) Adding support to parameters referenceLiquibaseCatalogName and referenceLiquibaseSchemaName. @filipelautert
  • (#3978) Introducing removeChangeSetProperty feature @kirangodishala
  • (#4461) support concurrent build in maven plugin @piotrwielgolaski-tomtom
  • (#4537) SQL Anywhere: Switching off view definition checks to allow creation of dependent views even if dependency does not yet exist. @mkarg
  • (#4658) Upgrade installer version to 17.0.8+7 @filipelautert
  • (#4387) Use more parameter markers for DB2z catalogue queries @MichaelKern-IVV
  • (#4148) maven-plugin: Support increasing maven log level @mensinda
  • (#4534) Fix database test system external driver load. @filipelautert
  • (#4680) Allow both include and includeAll to appear in modifyChangeSets tag @wwillard7800
  • (#4605) custom log data key-value pairs are injected multiple times per operation (DAT-15572) @StevenMassaro
  • (#4628) DAT -15524 Clear-Checksums implementation using command scope @MalloD12
  • (#4905) Check for duplicate core and commercial JARs DAT-15837 @wwillard7800
  • (#4799) parameter binding for DB2luw to improve performance and other trifles @MichaelKern-IVV
  • (#4926) Adding properties to the update report template to allow all the update family commands to use reports DAT-15638 @wwillard7800
  • (#4688) MySQL/MariaDB add extra info for date/timestamp columns for the diffChangeLog @filipelautert
  • (#4579) Use native oracle BOOLEAN for >=23c | fixes #4576 @mensinda
  • (#4834) Optimise the logic for tableIsEmpty check constraint @filipelautert
  • (#4729) DAT-15603 Attach Azure jar to liquibase release artifacts @jandroav
  • Bug Fixes:
  • [OSS]:
  • (#4827) Handle XML data types for DB2 DAT-12878 @wwillard7800
  • (#4812) More consistent message when included file is empty DAT-15551 @wwillard7800
  • (#4670) Fixed: Fails to detect LONG VARCHAR as CLOB and LONG BINARY as BLOB @mkarg
  • (#4648) Fixed: SQL Anywhere reports fancy precision with LONG NVARCHAR @mkarg
  • (#4845) Fix liquibase.bat java home handling under Windows @filipelautert
  • (#4726) Allow update command to handle additional properties that are passed on the command line DAT-15769 @wwillard7800
  • (#4841) Update README link to contribution docs @nwcm
  • (#4589) Fixes JdbcExecutor's uses of RawParameterizedSqlStatement @andrew-simmons
  • (#4683) Fixed: #4682 - MSSQL: Doesn't support (n CHAR) syntax, but only (n) syntax @mkarg
  • (#4798) Fix poor performance of listunrunchangesets @filipelautert
  • (#4803) Fix liquibase 4.23.1 won't work on windows if there is no JAVA_HOME system variable set @filipelautert
  • (#4502) Fixed: generateChangelog creates invalid changelog @mkarg
  • (#4772) Make sure that the correct argument name is displayed in help for commands with aliases DAT-15681 @wwillard7800
  • (#4441) Fix primaryKeyTablespace when attribute value is an empty string @delayk
  • (#4651) Fixing issue #4650 @mkarg
  • (#4404) enable REPLACE OR EXISTS for procedures on DB2 @MichaelKern-IVV
  • (#4541) remove dependency on javax.activation @filipelautert
  • (#4520) Fixed: SQL Anywhere reports fancy precision with DOUBLE, SMALLINT and TINYINT @mkarg
  • (#4609) fix standardlockservice when changelog-lock-wait-time-in-minutes is set to 0 and lock does not exist in database @jgarec
  • (#4591) Added changelog parameters to rollback commands @blaghed
  • (#4531) SQL Anywhere does not support "NO ACTION", but reports it for "SET DEFAULT" foreign keys @mkarg
  • (#4653) Allow DatabaseChangelog object to be passed as a parameter to DatabaseChangelogCommandStep @filipelautert
  • (#4613) Fix sequence from serial pre-condition validation for Postgresql @filipelautert
  • (#4507) Fixing Issue #4429: SQL Anywhere: generateChangeLog fails when column's default value is an expression (e. g. Unexpected error running Liquibase: Unknown boolean value: if "mycol" is null then 0 else 1 endif) @mkarg
  • (#4090) Fixes MySQL BIT / TINYINT(1) Boolean Behaviours @nwcm
  • (#4052) Fix H2 database case-sensitive identifier issues + upgrades JUnit tests cases to version 5 @mches
  • (#4709) Fix Regression in 4.23.1 where Log table is created multiple times for H2 and HSQLDB @filipelautert
  • (#4480) not to use class field for thread safe. @Wenkee
  • (#4515) Fixed: LONG VARCHAR DEFAULT NULL instead of LONG VARCHAR DEFAULT 'NULL' @mkarg
  • (#4534) Fix database test system external driver load. @filipelautert
  • (#4702) DAT-15602 @sayaliM0412
  • (#4689) Make operation start time be UTC DAT-15593 @wwillard7800
  • (#4585) DAT-15470 @sayaliM0412
  • (#4611) [DAT-15439] Fix adding redundant semicolon character for generateChangelog for MSSQL @vitaliimak
  • (#4625) Handle leading spaces in formatted SQL changelog DAT-15221 @wwillard7800
  • (#4672) DAT-15602 @sayaliM0412
  • (#4654) Correctly escape spaces in table name when it is used in a query DAT-11529 @wwillard7800
  • (#4956) Fix typo in SqlGeneratorFactory @asashour
  • (#4937) [DAT-15924] Handle AbstractSQLChange

New in LiquiBase 4.23.2 (Sep 12, 2023)

  • Bug Fixes:
  • Tweaked exception message for invalid formatted SQL file @wwillard7800
  • DAT-15857 - Fix for checksum upgrade in runWith change sets @wwillard7800

New in LiquiBase 4.23.1 (Sep 4, 2023)

  • [PRO]:
  • Introduce two new commands: set-labels and set-contexts to batch update the labels or contexts on existing changesets Use these to scale database DevOps by bulk updating your changesets with one command Or consolidate changes from different teams with different coding standards to ensure adherence to current standards Learn more at https://docsliquibasecom
  • New Features:
  • (#4476) [DAT-15258] Ensure Mongo extension doesnt control createIndex/dropIndex checksums for non-Mongo DBs @filipelautert
  • (#4506) Add command line args to scope DAT-15396 @wwillard7800
  • (#4539) DAT-15417 PR for setLabels/setContexts build @wwillard7800
  • (#4599) run tests on any branch @sayaliM0412
  • (#4538) add warning message about using catalogs in Postgres (DAT-14933) @StevenMassaro
  • (#4361) [DAT-14970] FormattedSqlChangeLogParser refactoring @vitaliimak
  • (#4197) Consume CORE and PRO packages from GitHub Package Manager (DAT-14615) @sayaliM0412
  • (#4483) Add ability to set labels and contexts in included changelogs DAT-15202 @wwillard7800
  • (#4485) DAT-14929: include rows affected in update command console output @StevenMassaro
  • (#4321) DAT-6585 Apt-based Linux package @jandroav
  • (#4317) Reworked rollback to tag logic to look for use first occurrence of tag DAT-13057 @wwillard7800
  • (#4375) switch contexts argument to contextFilter (DAT-13423) @StevenMassaro
  • (#4162) Allow whitespace within a foreign key statement @sideeffffect
  • (#4407) improve error message when no sql generators can be found (DAT-14688) @StevenMassaro
  • (#4420) add additional MDC properties to update and diff mojos (DAT-14672) @StevenMassaro
  • (#4219) Fixed CommandLineUtilsTest for german locale @nvoxland
  • (#4450) Fix deploymentId not populating after locking @wwillard7800
  • (#4409) DAT-15030 @sayaliM0412
  • Changes and Bug Fixes:
  • [PRO]:
  • DAT-14909: Add changelogFile back to rollback-one/rollback-on-error mdc success messages by @abrackx in liquibase/liquibase-pro#1024
  • DAT-14751 fix issues with nested flow files and logging by @wwillard7800 in liquibase/liquibase-pro#1036
  • DAT-13397: Respect rollback-script argument for rollback-one-update command by @abrackx in liquibase/liquibase-pro#1037
  • DAT-13423: switch contexts argument to contextFilter by @StevenMassaro in liquibase/liquibase-pro#1043
  • DAT-14694: Add Pro Tag and Pro Rollback commands by @wwillard7800 in liquibase/liquibase-pro#1013
  • DAT-13398: Respect contexts/labels on update-one-changeset, add changelogFile required parameter by @abrackx in liquibase/liquibase-pro#1042
  • DAT-14448 Implemented user metadata for the Flow file and cleaned up tests by @wwillard7800 in liquibase/liquibase-pro#961
  • DAT-9715: change sql parser exception log level to fine by @StevenMassaro in liquibase/liquibase-pro#1079
  • DAT-14791 Implement ability to exec shell commands within variables by @wwillard7800 in liquibase/liquibase-pro#1059
  • DAT-12252: remove unusable pro arguments by @StevenMassaro in liquibase/liquibase-pro#1081
  • DAT-14455: customize checks run output with --checks-output arg by @StevenMassaro in liquibase/liquibase-pro#1078
  • fix flow command test for windows by @StevenMassaro in liquibase/liquibase-pro#1098
  • DAT-8278: replace JSqlParserException with custom exception class by @StevenMassaro in liquibase/liquibase-pro#1080
  • DAT-15202 Implement ability to modify labels in included changelogs by @wwillard7800 in liquibase/liquibase-pro#1083
  • DAT-14615: Consume CORE and PRO artifact from GPM by @sayaliM0412 in liquibase/liquibase-pro#963
  • DAT-9678: set severity exit code for SQL parser fails by @StevenMassaro in liquibase/liquibase-pro#1100
  • DAT-14615: move repositories block into profile activated only on GHA by @StevenMassaro in liquibase/liquibase-pro#1122
  • DAT-15384: sort checks run console output by the severity order specified in checks-output arg by @StevenMassaro in liquibase/liquibase-pro#1101
  • DAT-15414 Rework to allow bash exec on Windows by @wwillard7800 in liquibase/liquibase-pro#1086
  • DAT-15417 Added DBMS argument and refactored by @wwillard7800 in liquibase/liquibase-pro#1104
  • DAT-15610: resolve license generator build failure that occurs on both-repo PRs by @StevenMassaro in liquibase/liquibase-pro#1157
  • [OSS]:
  • (#4370) add liquibaseHostName MDC key (DAT-14956) @StevenMassaro
  • (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4353) Add support for valueSequenceNext in Snowflake @jccampanero
  • (#4308) Fix issue #3317 - StringIndexOutOfBoundsException if date is set to 1970-01-01 @Mika2147
  • (#4400) Fix ordering problem in ShowSummaryUtil fixes #4399 @mensinda
  • (#4416) Normalize path using static function for Strings rather than Pathnor… @ffffionn
  • (#4533) decode URL encoded path in DirectoryPathHandler (DAT-15154) @StevenMassaro
  • (#4581) DAT-15208 :: Changeset object added back to "Update command completed successfully" JSON @MalloD12
  • (#4540) [DAT-15489] Fixes changelog-sync-to-tag ignores the tag if it is already in database after 4230 @filipelautert
  • (#4499) Fixed #4489: SQL Anywhere incorrectly reports VARCHAR(n CHAR) as VARCHAR(n) @mkarg
  • (#4089) Fix formatted SQL parse error when property has context, labels and global attributes @droy-sandbox
  • (#4362) docs file fixes, link updates @adrian-velonis1
  • (#4495) Do not throw exception when runWith is empty string (DAT-14316) @abrackx
  • (#4496) throw validation error on missing sqlFile (DAT-14920) @StevenMassaro
  • (#4490) fix format argument for history command (DAT-13382) @StevenMassaro
  • (#4470) [DAT-15327] Fix dropAll clean up behavior @filipelautert
  • (#4508) [DAT-15383] Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4422) Fixed #3971: "SAP SQL Anywhere 17011: Liquibase incorrectly reports that TIMESTAMP requested precision is longer than TIMESTAMP supported precision" @mkarg
  • (#4453) Implements equals method on AbstractChange to make sure that we can compare Changes correctly @filipelautert
  • (#4444) Improvements after 4230 @filipelautert
  • (#4307) Fixes #3661 @farion
  • (#4454) Fix changelogsync no longer generating deployment id @abrackx
  • (#4414) Fixes issue #4413: Undocumented IT requirement: Username "liquibase" @mkarg
  • (#4417) Fixes issue #4415: "Wrong DDL syntax CREATE SEQUENCE AS " @mkarg
  • (#4306) Fixes #3625 JAVA_HOME Path when parenthesis are present @JulienMa94
  • (#4450) Fix deploymentId not populating after locking @wwillard7800
  • (#4228) #4227 fix for BOOLEAN with precision like BOOLEAN(1) @sfrevel
  • (#4354) Make CreateTableStatement backward compatible @jccampanero
  • (#4427) Fix update fast check behavior @MalloD12

New in LiquiBase 4.23.1 (Sep 4, 2023)

  • [PRO]:
  • Introduce two new commands: set-labels and set-contexts to batch update the labels or contexts on existing changesets Use these to scale database DevOps by bulk updating your changesets with one command Or consolidate changes from different teams with different coding standards to ensure adherence to current standards Learn more at https://docsliquibasecom
  • New Features:
  • (#4476) [DAT-15258] Ensure Mongo extension doesnt control createIndex/dropIndex checksums for non-Mongo DBs @filipelautert
  • (#4506) Add command line args to scope DAT-15396 @wwillard7800
  • (#4539) DAT-15417 PR for setLabels/setContexts build @wwillard7800
  • (#4599) run tests on any branch @sayaliM0412
  • (#4538) add warning message about using catalogs in Postgres (DAT-14933) @StevenMassaro
  • (#4361) [DAT-14970] FormattedSqlChangeLogParser refactoring @vitaliimak
  • (#4197) Consume CORE and PRO packages from GitHub Package Manager (DAT-14615) @sayaliM0412
  • (#4483) Add ability to set labels and contexts in included changelogs DAT-15202 @wwillard7800
  • (#4485) DAT-14929: include rows affected in update command console output @StevenMassaro
  • (#4321) DAT-6585 Apt-based Linux package @jandroav
  • (#4317) Reworked rollback to tag logic to look for use first occurrence of tag DAT-13057 @wwillard7800
  • (#4375) switch contexts argument to contextFilter (DAT-13423) @StevenMassaro
  • (#4162) Allow whitespace within a foreign key statement @sideeffffect
  • (#4407) improve error message when no sql generators can be found (DAT-14688) @StevenMassaro
  • (#4420) add additional MDC properties to update and diff mojos (DAT-14672) @StevenMassaro
  • (#4219) Fixed CommandLineUtilsTest for german locale @nvoxland
  • (#4450) Fix deploymentId not populating after locking @wwillard7800
  • (#4409) DAT-15030 @sayaliM0412
  • Changes and Bug Fixes:
  • [PRO]:
  • DAT-14909: Add changelogFile back to rollback-one/rollback-on-error mdc success messages by @abrackx in liquibase/liquibase-pro#1024
  • DAT-14751 fix issues with nested flow files and logging by @wwillard7800 in liquibase/liquibase-pro#1036
  • DAT-13397: Respect rollback-script argument for rollback-one-update command by @abrackx in liquibase/liquibase-pro#1037
  • DAT-13423: switch contexts argument to contextFilter by @StevenMassaro in liquibase/liquibase-pro#1043
  • DAT-14694: Add Pro Tag and Pro Rollback commands by @wwillard7800 in liquibase/liquibase-pro#1013
  • DAT-13398: Respect contexts/labels on update-one-changeset, add changelogFile required parameter by @abrackx in liquibase/liquibase-pro#1042
  • DAT-14448 Implemented user metadata for the Flow file and cleaned up tests by @wwillard7800 in liquibase/liquibase-pro#961
  • DAT-9715: change sql parser exception log level to fine by @StevenMassaro in liquibase/liquibase-pro#1079
  • DAT-14791 Implement ability to exec shell commands within variables by @wwillard7800 in liquibase/liquibase-pro#1059
  • DAT-12252: remove unusable pro arguments by @StevenMassaro in liquibase/liquibase-pro#1081
  • DAT-14455: customize checks run output with --checks-output arg by @StevenMassaro in liquibase/liquibase-pro#1078
  • fix flow command test for windows by @StevenMassaro in liquibase/liquibase-pro#1098
  • DAT-8278: replace JSqlParserException with custom exception class by @StevenMassaro in liquibase/liquibase-pro#1080
  • DAT-15202 Implement ability to modify labels in included changelogs by @wwillard7800 in liquibase/liquibase-pro#1083
  • DAT-14615: Consume CORE and PRO artifact from GPM by @sayaliM0412 in liquibase/liquibase-pro#963
  • DAT-9678: set severity exit code for SQL parser fails by @StevenMassaro in liquibase/liquibase-pro#1100
  • DAT-14615: move repositories block into profile activated only on GHA by @StevenMassaro in liquibase/liquibase-pro#1122
  • DAT-15384: sort checks run console output by the severity order specified in checks-output arg by @StevenMassaro in liquibase/liquibase-pro#1101
  • DAT-15414 Rework to allow bash exec on Windows by @wwillard7800 in liquibase/liquibase-pro#1086
  • DAT-15417 Added DBMS argument and refactored by @wwillard7800 in liquibase/liquibase-pro#1104
  • DAT-15610: resolve license generator build failure that occurs on both-repo PRs by @StevenMassaro in liquibase/liquibase-pro#1157
  • [OSS]:
  • (#4370) add liquibaseHostName MDC key (DAT-14956) @StevenMassaro
  • (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4353) Add support for valueSequenceNext in Snowflake @jccampanero
  • (#4308) Fix issue #3317 - StringIndexOutOfBoundsException if date is set to 1970-01-01 @Mika2147
  • (#4400) Fix ordering problem in ShowSummaryUtil fixes #4399 @mensinda
  • (#4416) Normalize path using static function for Strings rather than Pathnor… @ffffionn
  • (#4533) decode URL encoded path in DirectoryPathHandler (DAT-15154) @StevenMassaro
  • (#4581) DAT-15208 :: Changeset object added back to "Update command completed successfully" JSON @MalloD12
  • (#4540) [DAT-15489] Fixes changelog-sync-to-tag ignores the tag if it is already in database after 4230 @filipelautert
  • (#4499) Fixed #4489: SQL Anywhere incorrectly reports VARCHAR(n CHAR) as VARCHAR(n) @mkarg
  • (#4089) Fix formatted SQL parse error when property has context, labels and global attributes @droy-sandbox
  • (#4362) docs file fixes, link updates @adrian-velonis1
  • (#4495) Do not throw exception when runWith is empty string (DAT-14316) @abrackx
  • (#4496) throw validation error on missing sqlFile (DAT-14920) @StevenMassaro
  • (#4490) fix format argument for history command (DAT-13382) @StevenMassaro
  • (#4470) [DAT-15327] Fix dropAll clean up behavior @filipelautert
  • (#4508) [DAT-15383] Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4452) Fix checksum upgrade changes preventing useless updates and using AbstractChangeLogHistoryService for extensions compatibility @filipelautert
  • (#4422) Fixed #3971: "SAP SQL Anywhere 17011: Liquibase incorrectly reports that TIMESTAMP requested precision is longer than TIMESTAMP supported precision" @mkarg
  • (#4453) Implements equals method on AbstractChange to make sure that we can compare Changes correctly @filipelautert
  • (#4444) Improvements after 4230 @filipelautert
  • (#4307) Fixes #3661 @farion
  • (#4454) Fix changelogsync no longer generating deployment id @abrackx
  • (#4414) Fixes issue #4413: Undocumented IT requirement: Username "liquibase" @mkarg
  • (#4417) Fixes issue #4415: "Wrong DDL syntax CREATE SEQUENCE AS " @mkarg
  • (#4306) Fixes #3625 JAVA_HOME Path when parenthesis are present @JulienMa94
  • (#4450) Fix deploymentId not populating after locking @wwillard7800
  • (#4228) #4227 fix for BOOLEAN with precision like BOOLEAN(1) @sfrevel
  • (#4354) Make CreateTableStatement backward compatible @jccampanero
  • (#4427) Fix update fast check behavior @MalloD12

New in LiquiBase 4.23.0 (Jun 27, 2023)

  • Notable Changes:
  • [PRO]:
  • Introduce custom and pipeline specific fields and data, and exclude private data, into Structured Logs and into your Liquibase operations data stream with new liquibase.customlogdata.yaml file.
  • The flow, history, status, and version commands have Structured Logging enhancements for improved compatibility with automated monitoring and analysis tools.
  • Learn more about Liquibase's Observability and Structured Logging capabilities to generate more meaningful reports and dashboards at https://docs.liquibase.com/observability
  • [OSS]:
  • Checksums upgraded to v9, which improves whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more.
  • -- No action is required of users to benefit from this enhancement
  • -- This release is backwards compatible with v8 checksums (found in 3.5 to 4.21.1 releases)
  • -- Console message will inform you when your checksums have been updated
  • Liquibase Hub de-commissioned and de-coupled from Liquibase operations. From 4.23.0 forward, Liquibase will make no Hub reporting attempts.
  • Breaking Changes:
  • For Developers of community-supported extension: #4310
  • -- This implement new method in ChangeLogHistoryService interface which may requires updates to your extension code.
  • For Pro users: a bug fix for users of BOTH update-one-changeset AND ignore=true in DAT-13516 (see below)
  • -- If you deploy with both these conditions, and have implemented a work-around, you should inspect your work-flow for potential changes.
  • [PRO] What's Changed:
  • Add or excluded custom user metadata to logs by @StevenMassaro in liquibase/liquibase-pro#956
  • DAT-13292: Decomission hub by @abrackx in liquibase/liquibase-pro#898 and #3996
  • DAT-14121: add failOnError MDC and always show changesetOutcome MDC by @StevenMassaro in liquibase/liquibase-pro#945
  • DAT-12946 disable snapshot generation for PRO objects for Redshift by @vitaliimak in liquibase/liquibase-pro#933
  • DAT-10024: show MDC when running --version by @StevenMassaro in liquibase/liquibase-pro#969
  • DAT-14110 API ability to add user metadata to the Flow model by @wwillard7800 in liquibase/liquibase-pro#941
  • Test with java 20 instead of 18 by @nvoxland in liquibase/liquibase-pro#964
  • DAT-13124 Finished with implementation of MDC for Flow command by @wwillard7800 in liquibase/liquibase-pro#954
  • DAT-14163: mdc for status command by @StevenMassaro in liquibase/liquibase-pro#979
  • DAT-14162: MDC for history command by @StevenMassaro in liquibase/liquibase-pro#981
  • DAT-6620: Refactors rollbackOneUpdate, rollbackOneUpdateSql, rollbackOneChangeset, rollbackOneChangesetSql to use command framework by @abrackx in liquibase/liquibase-pro#991
  • DAT-13946 Fix issue with catalogName property not being honored by @wwillard7800 in liquibase/liquibase-pro#992
  • DAT-14804: fix docs links by @StevenMassaro in liquibase/liquibase-pro#998
  • fix/include_liquibase_version by @sayaliM0412 in liquibase/liquibase-pro#1010
  • DAT-13516: update-one-changeset command should ignore changesets with ignore=true set by @StevenMassaro in liquibase/liquibase-pro#997
  • DAT-13283: improve join for snapshotting check constraints in MySQL by @StevenMassaro in liquibase/liquibase-pro#994
  • DAT-14807: case-insensitive matching on keys by @StevenMassaro in liquibase/liquibase-pro#999
  • DAT-13037 For rollback not required changes, do not complain about EmptyChange by @wwillard7800 in liquibase/liquibase-pro#984
  • DAT-14283 Add SEARCH_PATH setting to run script for PsqlRunner by @wwillard7800 in liquibase/liquibase-pro#995
  • DAT-14897: add check settings file DTO hidden parameter by @StevenMassaro in liquibase/liquibase-pro#1033
  • liquibase-pro changetype metadata by @adrian-velonis1 in liquibase/liquibase-pro#942
  • DAT-14307: Append keep.path to psql logFile property to create log files in temp directory by @abrackx in liquibase/liquibase-pro#1031
  • DAT-12478 by @sayaliM0412 in liquibase/liquibase-pro#1007
  • DAT-15167 by @sayaliM0412 in liquibase/liquibase-pro#1045
  • [OSS] What's Changed:
  • Add binary, varbinary and longvarbinary support for Snowflake #4226
  • Liquibase should not fail when change log has only databaseChangeLog tag #4273
  • Add v8 and v9 checksum support (DAT-14872) @StevenMassaro #4310
  • Fix index descending column snapshot test by @wwillard7800 in #4251
  • add failOnError MDC and always show changesetOutcome MDC (DAT-14121) by @StevenMassaro in #4158
  • DAT-12945: support JSON logging in the maven plugin by @StevenMassaro in #4152
  • show MDC when running --version (DAT-10024) by @StevenMassaro in #4218
  • For SQL Server, if a delimiter has not been specified, then add one. DAT-13998 by @wwillard7800 in #4202
  • Log when no changesets have been rolled back (DAT-11575) by @abrackx in #4209
  • [DAT-6608] Refactors DropAll command as CommandStep by @filipelautert in #4171
  • Test with java 20 instead of 18, as 18 is no longer supported by oracle by @nvoxland in #4208
  • SQL Anywhere was never owned by Siebel, but only by SAP, Sybase, Powersoft, Watcom. by @mkarg in #4178
  • Remove not using imported classes and packages in the source file. by @arturobernalg in #3836
  • Replace if statements with switch statements. by @arturobernalg in #3720
  • Delete unused comment code. by @arturobernalg in #3666
  • Code clean up around isUpToDateFastCheck by @MalloD12 in #4016
  • Refactor db-doc command to use command framework (DAT-6605) by @abrackx in #4238
  • Implement autorollback for and changes by @jccampanero in #4103
  • execute-sql command refactor (DAT-6609) by @abrackx in #4217
  • Fix "Running Changeset: " logs written directly to stdout instead of using the maven logger by @mensinda in #4157
  • Improve Javadoc. by @arturobernalg in #3841
  • Remove fields that are not used or unreachable from the entry points. by @arturobernalg in #3741
  • Fix javadoc references, links and spaces. by @arturobernalg in #3768
  • Implement "author" command argument for diffChangelog command by @vitaliyg2 in #3990
  • Prefer ThreadLocalScopeManager when working with Maven by @rogierslag in #4037
  • Code cleanup: avoid re-calling methods by @arturobernalg in #3721
  • Replace with Collections.singletonList(), Collections.emptyList(), or… by @arturobernalg in #3837
  • add support for the TRAN keyword (T-SQL) by @AlexGruebel in #4099
  • Switch to distribute jars generated by Java 11 allowing Jakarta cdi 4 upgrade by @filipelautert in #4119
  • refactor future-rollback-sql family of commands (DAT-6610, DAT-6611, DAT-6612) by @StevenMassaro in #4243
  • refactor mark-next-changeset-ran command family (DAT-6615, DAT-6616) by @StevenMassaro in #4253
  • Add serialVersionUID to classes that implement Serializable. by @arturobernalg in #3680
  • mdc for status command (DAT-14163) by @StevenMassaro in #4259
  • Refactor validate command (DAT-6643) by @abrackx in #4281
  • Show MSSQL PRINT output by showing SQL Warnings if they exist DAT-8708 by @wwillard7800 in #4263
  • add MDC for release locks outcome (DAT-14166) by @StevenMassaro in #4229
  • refactor unexpected changesets command (DAT-6637) by @StevenMassaro in #4278
  • DAT-6632: refactor snapshot-reference command by @StevenMassaro in #4262
  • refactor update-testing-rollback command (DAT-6640) by @StevenMassaro in #4282
  • Make sure drop FK changes are first in the list generated by diffChangelog DAT-14101 by @wwillard7800 in #4272
  • Cleanup logging for releasing locks. by @abrackx in #4296
  • Immutable fields changed to final for clarity by @arturobernalg in #3713
  • MDC for history command (DAT-14162) by @StevenMassaro in #4260
  • Refactors rollbackOneChangeSet, rollbackOneChangesetSql, rollbackOneUpdate, rollbackOneUpdateSql to use command framework. (DAT-6620) by @abrackx in #4275
  • Adds back validation message to validate command (DAT-14859) by @abrackx in #4295
  • Added filtering to the target database during diff. Previously, only by @wwillard7800 in #4279
  • add custom MDC data to logs by @StevenMassaro in #4180
  • Upgrade build to use Maven 3.9.2 by @filipelautert in #4170
  • fix docs links (DAT-14804) by @StevenMassaro in #4297
  • Add support for Unicode roman numerals. by @jccampanero in #4110
  • test improvements and add additional API to ChangeLogIterator (DAT-13516) by @StevenMassaro in #4294
  • use latest mysql version in integration tests (DAT-13283) by @StevenMassaro in #4287
  • Do not validate an ignored change set DAT-13141 by @wwillard7800 in #4283
  • Test fix to drop DBCL DAT-14806 by @wwillard7800 in #4351
  • runAlways should run regardless of checksum validation by @jccampanero in #4132
  • Show warning message if the tag does not exist DAT-14046 by @wwillard7800 in #4323
  • Created ChangeDefinitionTest by @nvoxland in #3784
  • Fix liquibase.skip in maven plugin when activated in multithreaded build by @piotrwielgolaski-tomtom in #4022
  • Don't try to create parent directory if it already exists by @wslaghekke in #4266
  • Fix Custom ChangeExecListener Class Cast Exception by @filipelautert in #4271
  • Sybase JDBC: Detecting current and some historic driver versions by @mkarg in #4179
  • Fix inherited changelog properties by @airon-assustadus in #4267
  • Add errorIfMissingOrEmpty attribute to ChangeLogProperty and ChangeLogInclude classes by @jasonlyle88 in #3901
  • Add skipOnFileExists maven property for skipping plugin execution when a file exists by @mensinda in #3363
  • Replace Statement by PreparedStament allowing the use of parameter markers on DB2z catalogue queries by @MichaelKern-IVV in #3813
  • migrate ChangeLogHistoryServiceFactory to AbstractPluginFactory pattern by @piotrwielgolaski-tomtom in #4023
  • Fix paths starting with dot dot by @filipelautert in #4380
  • Fix ERROR: permission denied for sequence (in unrelated schema) #4048 by @joaocc in #4140
  • DAT-12478 by @sayaliM0412 in #4163
  • DAT-15030 by @sayaliM0412 in #4372
  • DAT-15030 by @sayaliM0412 in #4382
  • DAT-15030 by @sayaliM0412 in #4392
  • DAT-14686 by @sayaliM0412 in #4212
  • Security, Driver and other updates:
  • [Pro]:
  • Bump ojdbc8 from 21.9.0.0 to 21.10.0.0 by @dependabot in liquibase/liquibase-pro#1008
  • Bump picocli from 4.7.1 to 4.7.3 by @dependabot in liquibase/liquibase-pro#974
  • Bump maven-assembly-plugin from 3.4.2 to 3.6.0 by @dependabot in liquibase/liquibase-pro#985
  • Bump jackson-module-jaxb-annotations from 2.15.0 to 2.15.1 by @dependabot in liquibase/liquibase-pro#986
  • Bump jackson-dataformat-yaml from 2.15.0 to 2.15.1 by @dependabot in liquibase/liquibase-pro#987
  • Bump jackson-databind from 2.14.2 to 2.15.1 by @dependabot in liquibase/liquibase-pro#988
  • Bump jackson-annotations from 2.15.0 to 2.15.1 by @dependabot in liquibase/liquibase-pro#989
  • Bump jackson-core from 2.15.0 to 2.15.1 by @dependabot in liquibase/liquibase-pro#990
  • Bump flatten-maven-plugin from 1.4.0 to 1.5.0 by @dependabot in liquibase/liquibase-pro#975
  • Bump actions/delete-package-versions from 3 to 4 by @dependabot in liquibase/liquibase-pro#1000
  • Bump castlabs/get-package-version-id-action from 2.0 to 2.2 by @dependabot in liquibase/liquibase-pro#1001
  • Bump hsqldb from 2.7.1 to 2.7.2 by @dependabot in liquibase/liquibase-pro#1017
  • Bump maven-surefire-plugin from 3.0.0 to 3.1.0 by @dependabot in #4222
  • Bump surefire-junit4 from 3.0.0 to 3.1.0 by @dependabot in #4221
  • Bump picocli from 4.7.1 to 4.7.3 by @dependabot in #4154
  • Bump castlabs/get-package-version-id-action from 2.1 to 2.2 by @dependabot in #4177
  • [oss]:
  • Bump junit-jupiter-params from 5.9.2 to 5.9.3 by @dependabot in #4183
  • Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in #4215
  • Bump maven-plugin-plugin from 3.8.1 to 3.8.2 by @dependabot in #4167
  • Bump testcontainers-bom from 1.18.0 to 1.18.1 by @dependabot in #4256
  • Bump flatten-maven-plugin from 1.4.1 to 1.5.0 by @dependabot in #4242
  • Bump targetMavenVersion from 3.9.1 to 3.9.2 by @dependabot in #4254
  • Bump build-helper-maven-plugin from 3.3.0 to 3.4.0 by @dependabot in #4257
  • Bump ojdbc8 from 21.9.0.0 to 23.2.0.0 by @dependabot in #4106
  • Bump mariadb-java-client from 3.1.3 to 3.1.4 by @dependabot in #4200
  • Bump sqlite-jdbc from 3.41.2.1 to 3.41.2.2 in /liquibase-dist by @dependabot in #4300
  • Bump snowflake-jdbc from 3.13.29 to 3.13.32 by @dependabot in #4315
  • Bump maven-bundle-plugin from 5.1.8 to 5.1.9 by @dependabot in #4284
  • Bump maven-assembly-plugin from 3.5.0 to 3.6.0 by @dependabot in #4264
  • Bump maven-plugin-plugin from 3.8.2 to 3.9.0 by @dependabot in #4265
  • Bump sqlite-jdbc from 3.41.2.1 to 3.42.0.0 by @dependabot in #4298
  • Bump hsqldb from 2.7.1 to 2.7.2 by @dependabot in #4333
  • Bump picocli from 4.7.3 to 4.7.4 by @dependabot in #4348
  • Bump weld-se-core from 5.1.0.Final to 5.1.1.Final by @dependabot in #4373
  • Bump maven-surefire-plugin from 3.1.0 to 3.1.2 by @dependabot in #4356
  • Bump maven-source-plugin from 3.2.1 to 3.3.0 by @dependabot in #4292
  • Bump gmavenplus-plugin from 2.1.0 to 3.0.0 by @dependabot in #4303
  • Bump spring.version from 5.3.27 to 5.3.28 by @dependabot in #4384
  • Updates installer JVM version. by @filipelautert in #4233
  • Upgrades snyk java version. by @filipelautert in #4286

New in LiquiBase 4.22.0 (May 13, 2023)

  • Notable Changes:
  • The checksum changes in Liquibase version 4.22.0 a major change, which improves whitespace handling in views, procedures, Liquibase Pro stored logic objects, and more. New checksums are silently recalculated upon the initial run of Liquibase 4.22.0 or greater.
  • No actions is required for the vast majority of users. However, for users who rely on the detection of a changed changeset or have complex workflows, it is recommended that you run liquibase clear-checksums with your current version BEFORE your first operation using the new 4.22.0 version against a database. Learn more at https://docs.liquibase.com/concepts/changelogs/changeset-checksums.html
  • API Breaking Changes:
  • DAT-13285 - Fix CheckSum generation issues + improvement by @filipelautert in #3914
  • Enhancements:
  • Improve liquibase-core pom.xml handling (DAT-14546) by @nvoxland in #4169
  • DAT-14367 by @sayaliM0412 in #4186
  • New test fixes by @wwillard7800 in #4199
  • Update release-published.yml by @jnewton03 in #4206
  • Adding support for Postgresql-generated columns. by @filipelautert in #4185
  • update changelog to 4.22 by @suryaaki2 in #4231
  • DAT-13972: add rollback-on-error ability and its MDC to update-one-changeset command by @StevenMassaro in liquibase/liquibase-pro#934
  • update pom.xml by @sayaliM0412 in liquibase/liquibase-pro#929
  • MDC for update-testing-rollback by @StevenMassaro in liquibase/liquibase-pro#943
  • update pro key for test by @StevenMassaro in liquibase/liquibase-pro#962
  • DAT-12568 pro license key automation by @jnewton03 in liquibase/liquibase-pro#966
  • DAT- 13285:: Update stored logic checksum logic to match new OSS checksum logic for procedures by @MalloD12 in liquibase/liquibase-pro#931
  • DAT-14674: add help test for pro side by @StevenMassaro in liquibase/liquibase-pro#965
  • update pro xsd and schema to 4.22 by @suryaaki2 in liquibase/liquibase-pro#971
  • Security, Driver, and other updates:
  • Bump maven-surefire-plugin from 2.22.2 to 3.0.0 by @filipelautert in #4113
  • Bump maven-enforcer-plugin from 3.2.1 to 3.3.0 by @dependabot in #4081
  • Bump jacoco-maven-plugin from 0.8.8 to 0.8.10 by @dependabot in #4174
  • Bump flatten-maven-plugin from 1.3.0 to 1.4.1 by @dependabot in #4036
  • Bump logback-classic from 1.4.6 to 1.4.7 by @dependabot in liquibase/liquibase-pro#947
  • Bump jackson-core from 2.14.2 to 2.15.0 by @dependabot in liquibase/liquibase-pro#949
  • Bump jackson-annotations from 2.14.2 to 2.15.0 by @dependabot in liquibase/liquibase-pro#950
  • Bump jackson-module-jaxb-annotations from 2.14.2 to 2.15.0 by @dependabot in liquibase/liquibase-pro#951
  • Bump jackson-dataformat-yaml from 2.14.2 to 2.15.0 by @dependabot in liquibase/liquibase-pro#953
  • Bump jacoco-maven-plugin from 0.8.9 to 0.8.10 by @dependabot in liquibase/liquibase-pro#955
  • Fixes:
  • Fixed #3487 Provide precision and scale for currency database datatype and H2. by @jccampanero in #4019
  • Fix search path handle for PostgreSQL with JDBC connection with specified schema by @quonas in #4021
  • Fixes undesired change to CreateProcedureChange checksum generation by @filipelautert in #4161
  • Fixed #3722 auto-increment column starting with a custom value no longer works with H2 v1 by @quonas in #4013
  • Fix addDefaultValue checksum calculation when providing schema name by @filipelautert in #4203
  • Fix flaky Postgres tests by @abrackx in #4234
  • DAT-13953: fix integration name log message for native tools by @StevenMassaro in liquibase/liquibase-pro#937
  • Fix tests because of output change from Postgres 9.6 to 15. by @filipelautert in liquibase/liquibase-pro#970
  • DAT-14642 - Fix Update-one-changeset problem that shows up during checksum upgrade by @filipelautert in liquibase/liquibase-pro#968
  • Move dbchangelog-4.21.xsd to liquibase-standard by @nvoxland in #4176
  • include changelog file when running status command from Liquibase class (DAT-14659) by @StevenMassaro in #4201
  • Always use LockService from Factory when running command steps by @filipelautert in #4151
  • SnowflakeDatabase allows catalog name in identifiers in #4092
  • Change the case of sys.extended_properties. by @jccampanero in #4101
  • Load properties from defaults-file fixing variable replacement for refactored commands by @filipelautert in #4204
  • remove helper commands from help output (DAT-14674) by @StevenMassaro in #4207
  • DAT-14177: add changesetsRolledback for failed rollback-on-error rollback by @StevenMassaro in liquibase/liquibase-pro#932

New in LiquiBase 4.21.1 (Apr 15, 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 https://docs.liquibase.com/structured-logging
  • What's Changed:
  • DAT-14365: unhide log-format parameter by @StevenMassaro in #4120
  • updated changelog txt to 4.21 by @suryaaki2 in #4121
  • remove Hub mention from readme by @mariochampion in #4127
  • Add missing parameter changeLogFile to update command when running from Main by @filipelautert in #4126

New in LiquiBase 4.21.0 (Apr 14, 2023)

  • 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 and RollbackSQL 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 liquibase/liquibase-pro#849
  • Enhancements:
  • [PRO] New runWithSpoolFile attribute for runWith 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 liquibase/liquibase-pro#884
  • [PRO] Bump flatten-maven-plugin from 1.3.0 to 1.4.0 by @dependabot in liquibase/liquibase-pro#893
  • [PRO] Bump postgresql from 42.5.4 to 42.6.0 by @dependabot in liquibase/liquibase-pro#892
  • [PRO] Bump jacoco-maven-plugin from 0.8.8 to 0.8.9 by @dependabot in liquibase/liquibase-pro#925
  • [PRO] Snakeyaml 2.0 by @filipelautert in liquibase/liquibase-pro#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 #3973
  • 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 and createSpool property to control use of Oracle spooling by @wwillard7800 in liquibase/liquibase-pro#843
  • [PRO] DAT-12814: '--rollback-on-error' should return ERROR and return code 1 when update fails by @StevenMassaro in liquibase/liquibase-pro#905
  • [PRO] DAT-13968 Added missing overwrite property by @wwillard7800 in liquibase/liquibase-pro#895
  • [PRO] DAT-13667 Make sure exception from SQLCMD is propagated back to be displayed by @wwillard7800 in liquibase/liquibase-pro#902
  • [PRO] DAT-14096 Handle existence of a file extension when creating spool/sql/log files by @wwillard7800 in liquibase/liquibase-pro#913
  • [PRO] DAT-13994: strip leading slashes from contexts by @StevenMassaro in liquibase/liquibase-pro#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 via minDepth and maxDepth attributes by @jasonlyle88 in #3620
  • Avoid String concatenation in loop. by @arturobernalg in #3668
  • fix NullPointerException in ResourceAccessor 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 or updateTagSql DAT-14107 by @wwillard7800 in #4060

New in LiquiBase 4.20.0 (Mar 9, 2023)

  • API Breaking Changes:
  • Remove Liquibase Hub auto-registration prompts and no longer support new Liquibase Hub registrations. Please get in touch with customer support with any questions. (DAT-13419) by @StevenMassaro in #3886
  • Refactor of commands: diff, diffchangelog, generatechangelog DAT-6606, DAT-6607, DAT-6623, DAT-6613 by @filipelautert in #3775
  • Enhancements:
  • Automate deployment of XSDs to new beta landing site by @sayaliM0412 in #3867
  • Issue 3584: Add support for relativeToChangelogFile for ChangeLogProperty class/property attribute by @jasonlyle88 in #3595
  • Jakartaee CDI for liquibase by @xazap in #3642
  • Use variable for maven version by @StevenMassaro in #3895
  • More maven version pinning by @StevenMassaro in #3887
  • Update db changelog xsd to 4.20 by @suryaaki2 in #3918
  • [PRO] Refactor of commands: diff, diffchangelog, generatechangelog DAT-6606, DAT-6607 and DAT-6613 by @filipelautert in liquibase/liquibase-pro#824
  • [PRO] Update pro xsd and flow schema to 4.20 by @suryaaki2 in liquibase/liquibase-pro#861
  • Security, Driver and other updates:
  • Bump actions/cache from 3.2.5 to 3.2.6 by @dependabot in #3851
  • [PRO] Bump jsqlparser from 4.5 to 4.6 by @dependabot in liquibase/liquibase-pro#842
  • [PRO] Bump mockito-core from 3.8.0 to 3.12.4 by @dependabot in liquibase/liquibase-pro#845
  • [PRO] Bump actions/checkout from 2 to 3 by @dependabot in liquibase/liquibase-pro#846
  • [PRO] Bump actions/setup-java from 2 to 3 by @dependabot in liquibase/liquibase-pro#847
  • [PRO] Bump schdck/create-env-json from 1 to 2 by @dependabot in liquibase/liquibase-pro#848
  • [PRO] Bump maven-compiler-plugin from 3.10.1 to 3.11.0 by @dependabot in liquibase/liquibase-pro#850
  • Fixes:
  • Safely call snakeyaml methods that have been changed in last versions. by @filipelautert in #3904
  • Only show structured log license message after value providers are registered (DAT-13362) by @StevenMassaro in #3850
  • Pin maven version for sonar scan by @StevenMassaro in #3880
  • Fix CheckSum generation issues + improvements by @MalloD12 in #3616
  • Structured logging MdcKey renaming by @StevenMassaro in #3875
  • Revert "Fix CheckSum generation issues + CURRENT_CHECKSUM_ALGORITHM_VERSION updated from 8 to 9." by @filipelautert in #3892
  • [PRO] only show structured log license message after value providers are registered (DAT-13362) by @StevenMassaro in liquibase/liquibase-pro#839
  • [PRO] Pin maven to 3.8.7 by @wwillard7800 in liquibase/liquibase-pro#855
  • [PRO] GitHub action maven version pin by @StevenMassaro in liquibase/liquibase-pro#859

New in LiquiBase 4.19.1 (Mar 2, 2023)

  • Enhancements:
  • Publish liquibase-extension-testing to github packages (DAT-12833) by @abrackx in #3697
  • Add support for multiple schemas to dbDoc command by @zpanderson in #1834
  • No need redundant conditions. by @arturobernalg in #3553
  • Replace expressions with type arguments with diamond type <>. by @arturobernalg in #3591
  • Remove duplicate conditions in expressions and branches of if statements. They are used due to oversight. by @arturobernalg in #3548
  • Replace constant charset String literal with the predefined StandardC… by @arturobernalg in #3568
  • Normalize path of SQL changelog file when parsing (DAT-11891) by @StevenMassaro in #3664
  • Delegate change set equality tests by @droy-sandbox in #3550
  • (DAT-6636)Refactor of TagExistsCommandStep and extraction of code to new LockServiceCommandStep by @filipelautert in #3667
  • Refactors CalculateChecksumCommandStep by @filipelautert in #3696
  • CORE-3044 avoid locking if no updates pending by @RichardBradley in #2190
  • Warning in case of missing liquibase files instead of throwing an exception by @mhewedy in #3081
  • Remove redundant modifiers. by @arturobernalg in #3594
  • Update maven-bundle-plugin instructions to export package containing XSD files by @GeertZondervan in #3597
  • Remove redundant conditions that covered by a subsequent condition. by @arturobernalg in #3590
  • Add support for db2 view comments (DAT-12529) by @abrackx in #3723
  • Remove unnecessary cast expressions. by @arturobernalg in #3670
  • Performance improvements by @filipelautert in #3588
  • Implemented a summary of change sets which get filtered out during update (DAT-12068) by @wwillard7800 in #3730
  • Support tabular format for history command by @fbiville in #3541
  • Remove Unnecessary operation/modifier: by @arturobernalg in #3657
  • Update and rename bug_report.md to bug_report.yaml by @kevin-atx in #3728
  • Improve command line help message format by @StevenMassaro in #3829
  • Use StandardCharsets constant instead. (DAT-12853) by @arturobernalg in #3725
  • Update SnakeYAML usage - do not call deprecated methods by @asomov in #3632
  • Avoid global mutable state of Non-final fields in enumeration types. by @arturobernalg in #3727
  • Use constants instead of arrays with known lengths of zero by @arturobernalg in #3716
  • Simplify lambda expressions when possible by @arturobernalg in #3736
  • [PRO] Added new modifyChangeSets tag to support specification of runWith attribute for all change sets in include or includeAll
  • [PRO] DAT-7922 Implement a check for one change per changeset by @wwillard7800 in liquibase/liquibase-pro#790
  • [PRO] DAT-11915 Correctly escape SQL to enable and disable triggers on PostgreSQL by @wwillard7800 in liquibase/liquibase-pro#799
  • [PRO] DAT-10157: add database scope for reserved words checks by @StevenMassaro in liquibase/liquibase-pro#802
  • [PRO] DAT-13189 safely set code point limit for SnakeYaml by @StevenMassaro in liquibase/liquibase-pro#827
  • [PRO] DAT-13440: show changesetsRolledback only after rollback is complete by @StevenMassaro in liquibase/liquibase-pro#838
  • [PRO] DAT-12568 by @jnewton03 in liquibase/liquibase-pro#844
  • Fixes:
  • Fixes generate-changelog table/view comment and table/view column comment generation for MSSQL (DAT-12045) by @abrackx in #3563
  • Fully qualified path to the changelog or snapshot in S3 is not allowed, so needs better msg (DAT-11478) by @diadiushko in #3564
  • (DAT-12039) :detect circular references in includeAll statement by @StevenMassaro in #3695
  • improve logging around paths that do not exist (DAT-12038) by @StevenMassaro in #3669
  • normalize path of json and yaml changelogs when parsing (DAT-11891) by @StevenMassaro in #3711
  • deprecate DefaultLoggerConfiguration (DAT-11970) by @StevenMassaro in #3706
  • Rework dropProcedure for Snowflake Log message when dropAll fails (DAT-12916) by @wwillard7800 in #3702
  • fix: snowflake has wrong priority by @Yogurt-lei in #3572
  • Do not add default schema name to getSchemas method to avoid one schema by @LonwoLonwo in #3704
  • 3035 add Double data type class to avoid incorrect double(0) database by @LonwoLonwo in #3703
  • Stop publishing liquibase-extension-testing to Github on branch builds (DAT-13038) by @abrackx in #3726
  • do not support setting column comments on a view in Snowflake (DAT-12530) by @StevenMassaro in #3710
  • Fix NullPointerException for case sensitive collations by @ivan909020 in #3699
  • (DAT-13269) pass proper branch name and add required field by @jnewton03 in #3765
  • Consistent ARG-suffix for 'defaultSchemaName'-Parameter by @SIEDA-EliasHeydrich in #3662
  • Removing explicit LiquibaseServletListener references by @Thunderforge in #3677
  • Add Snowflake structured data types to unmodifiable Data Types by @LonwoLonwo in #3752
  • Fix #3690 primaryKeyExists does not work on DB2z by @MichaelKern-IVV in #3691
  • Replace old stream creation with java.nio. by @arturobernalg in #3686
  • github-action (DAT-13527) by @jnewton03 in #3827
  • Do not duplicate clearCheckSums logic by @fbiville in #3628
  • Fixing #3708 - AddColumn fix for H2 version 1.4.200 by @KarolyNevelos in #3709
  • Added default values to private Scope constructor by @MarkTJohnson in #3756
  • Improved concurrency support by using ConcurrentHashMaps by @jurgenkleverwal in #3799
  • fixing lookahead for last line comment method by @mwiede in #3717
  • Do not calculate checksum when loading changelogs by @filipelautert in #3790
  • set up maven using simpler GitHub action by @StevenMassaro in #3835
  • safely set code point limit for SnakeYaml (DAT-13189) by @StevenMassaro in #3807
  • Fix failing EnvironmentValueProviderTest by @nvoxland in #3783
  • show changesetsRolledback only after rollback is complete (DAT-13440) by @StevenMassaro in #3846
  • Security, Driver and other updates:
  • OWASP Dependency Check: Reported Vulnerabilities
  • snakeyaml.jar - This is a "critical" vulnerability reported against the snakeyaml library. Note: Liquibase code is not vulnerable to this attack, but users can manually upgrade to the newest version of snakeyaml library, and will be upgraded to the unaffected snakeyaml 2.0 version in the next release. If you are interested, you can track the PR at #3865
  • Bump junit-jupiter-params from 5.9.1 to 5.9.2 by @dependabot in #3673
  • Bump ant from 1.10.11 to 1.10.13 by @dependabot in #3672
  • Bump firebird-testcontainers-java from 1.2.0 to 1.3.0 by @dependabot in #3653
  • Bump actions/delete-package-versions from 3 to 4 by @dependabot in #3649
  • Bump maven-plugin-plugin from 3.7.0 to 3.7.1 by @dependabot in #3698
  • Bump assertj-core from 3.23.1 to 3.24.2 by @dependabot in #3705
  • Bump jaybird from 4.0.8.java8 to 5.0.0.java8 by @dependabot in #3659
  • Bump mariadb-java-client from 3.1.0 to 3.1.2 by @dependabot in #3729
  • Bump snowflake-jdbc from 3.13.26 to 3.13.27 by @dependabot in #3751
  • Bump picocli from 4.7.0 to 4.7.1 by @dependabot in #3742
  • Bump actions/cache from 3.2.3 to 3.2.4 by @dependabot in #3750
  • Bump actions/cache from 3.2.4 to 3.2.5 by @dependabot in #3809
  • Bump maven-deploy-plugin from 3.0.0 to 3.1.0 by @dependabot in #3802
  • Bump maven-shade-merge-manifest-transformer from 0.0.2 to 0.0.3 by @dependabot in #3779
  • Bump postgresql from 42.5.1 to 42.5.3 by @dependabot in #3778
  • Bump jaxb-runtime from 4.0.1 to 4.0.2 by @dependabot in #3786
  • Bump jaxb-core from 4.0.1 to 4.0.2 by @dependabot in #3787
  • Bump sqlite-jdbc from 3.40.0.0 to 3.40.1.0 by @dependabot in #3772
  • Bump maven-enforcer-plugin from 3.1.0 to 3.2.1 by @dependabot in #3759
  • Bump jaybird from 5.0.0.java8 to 5.0.1.java8 by @dependabot in #3760
  • Bump mssql-jdbc from 11.2.1.jre8 to 12.2.0.jre8 by @dependabot in #3761
  • Bump ojdbc8 from 21.8.0.0 to 21.9.0.0 by @dependabot in #3808
  • Bump postgresql from 42.5.3 to 42.5.4 by @dependabot in #3831
  • Migrate setup-java action to use Temurin by @gdams in #3607

New in LiquiBase 4.19.0 (Jan 18, 2023)

  • Enhancements:
  • Simplify assert calls and replaced with simpler and equivalent calls. by @arturobernalg in #3497
  • Delete unused import statement. by @arturobernalg in #3522
  • Added call to modifyChangeSet during execute method to allow the changeSet to be correctly set on the executor DAT-12388 by @wwillard7800 in #3511
  • Remove unnecessary local variables that add nothing to the comprehensibility of a method. by @arturobernalg in #3373
  • Allow loading gzipped data files by @mike-seger in #3379
  • Use try-with-resources Statement when is possible. by @arturobernalg in #3374
  • Define and reuse constants. Use an empty array styles to convert a collection to an array. by @arturobernalg in #3500
  • Add support for block comment rollback commands on SQL changesets by @krishnaenugandula in #1399
  • Allow primary key on addColumn for H2 by @nick318 in #3372
  • Additional (optional) tableType attribute on the CreateTableChange by @MartinRied in #3108
  • Include "path" in databasechangelog's description column for all change types with "path" attributes by @MichaelKern-IVV in #3244
  • #1466: Add ignore:true changeset attribute to Formatted SQL changeLogs by @skrivenko in #3377
  • #1290: Forbid empty changeSet id and author by @skrivenko in #3397
  • Allow to drop and create a view for a Postgres database if replacing the view would fail by @rozenshteyn in #3399
  • Rename DatabaseObjectComparator class to be DatabaseObjectCollectionComparator for clarity DAT-10112 by @wwillard7800 in #3544
  • Do not lower case the ProvidedValue description if the string is capitalized, i.e. it starts with 2 upper-case characters DAT-12614 by @wwillard7800 in #3589
  • Use 'Integer.compare' instead by @arturobernalg in #3528
  • Simplify 'Map' operations. by @arturobernalg in #3527
  • Remove unnecessary semicolon. by @arturobernalg in #3571
  • Missing Override annotations. by @arturobernalg in #3558
  • Prevents redundant loop iterations. Early loop exit in 'if' condition. by @arturobernalg in #3547
  • DAT 6635 - Implement TagCommand by @filipelautert in #3570
  • DAT-12576 update release workflow to attach artifact by run_id by @ap-liquibase in #3629
  • DAT-12365 update install4j script to version 10.x by @jnewton03 in #3641
  • Upgrades installer JDK version for next release. by @filipelautert in #3440
  • remove licenses that were moved to individual extensions (DAT-12784) by @StevenMassaro in #3646
  • DAT-12597 include commercial sources and javadoc in reversion by @ap-liquibase in #3671
  • Security, Driver, and other updates:
  • Bump mariadb-java-client from 3.0.8 to 3.1.0 by @dependabot in #3471
  • Bump testcontainers-bom from 1.17.5 to 1.17.6 by @dependabot in #3477
  • Bump snowflake-jdbc from 3.13.22 to 3.13.25 by @dependabot in #3475
  • Bump slf4j-jdk14 from 2.0.3 to 2.0.4 by @dependabot in #3485
  • Bump maven-install-plugin from 3.0.1 to 3.1.0 by @dependabot in #3484
  • Bump castlabs/get-package-version-id-action from 2.0 to 2.1 by @dependabot in #3490
  • Bump sqlite-jdbc from 3.39.4.0 to 3.40.0.0 by @dependabot in #3510
  • Bump jaybird from 4.0.6.java8 to 4.0.8.java8 by @dependabot in #3509
  • Bump mockito-inline from 4.8.1 to 4.10.0 by @dependabot in #3580
  • Bump targetMavenVersion from 3.8.5 to 3.8.6 by @dependabot in #3593
  • Bump junit-jupiter-params from 5.8.1 to 5.9.1 by @dependabot in #3592
  • Bump jaybird from 4.0.6.java8 to 4.0.8.java8 by @dependabot in #3602
  • Bump slf4j-jdk14 from 2.0.4 to 2.0.6 by @dependabot in #3566
  • Bump snowflake-jdbc from 3.13.25 to 3.13.26 by @dependabot in #3579
  • Bump robinraju/release-downloader from 1.6 to 1.7 by @dependabot in #3603
  • Bump ojdbc8 from 21.7.0.0 to 21.8.0.0 by @dependabot in #3551
  • Bump up the max number of code points for JSON/YAML parser DAT-12657 by @wwillard7800 in #3552
  • Bump actions/cache from 3.0.11 to 3.2.3 by @dependabot in #3654
  • update changelog version - 4.19 by @suryaaki2 in #3676
  • Update changelog xsd 4.19 by @suryaaki2 in #3678
  • Bump targetMavenVersion from 3.8.5 to 3.8.7 by @dependabot in #3634
  • Update release-published.yml by @jnewton03 in #3540
  • DAT-12783 Adding extension license information by @wwillard7800 in #3614
  • Fixes:
  • fix overwriteOutputFile parameter for GenerateChangelog (DAT-12036) by @StevenMassaro in #3543
  • Avoid ClassCastException when loading LogService from Scope by @mattbertolini in #3518
  • Adds exclusions for mariadb newly added waffle dependency. by @filipelautert in #3559
  • Correctly handle indexes with descending columns in snapshot DAT-11447 by @wwillard7800 in #3535
  • Fix getting default schema issue for firebird by @MalloD12 in #3390
  • Fix generatedSQL logic to allow setting up a function as a default value for MySQL version 8 by @MalloD12 in #3362
  • DAT-11579: when generating changelogs for MySQL, ignore table column order for PKs by @StevenMassaro in #3486
  • Included SQL to return unique constraints for Sybase by @crenan in #3517
  • Add varbinary and binary support for DB2 - fixes #3408 by @mihaelaDev in #3428
  • Added support for COMPUTED values inside CSV files for loadData change by @zbynekvavros in #944
  • Prevent Executors collision due to hash used as a Map's key part by @Dasiu in #3533
  • Breaks out of LockService.init loop after validations are completed by @filipelautert in #3576
  • implement SingletonObject to solve #2349 by @yairogen in #3624
  • Postgresql - Fallback to default schema name in SequenceSnapshotGenerator when this is null by @djochim in #3637
  • OWASP Dependency Check: Reported Vulnerabilities:
  • snakeyaml.jar - This is a "critical" vulnerability reported against the snakeyaml library. We are currently on the newest version of snakeyaml and there is no fix for the issue as of yet.

New in LiquiBase 4.18.0 (Dec 7, 2022)

  • Notable Changes:
  • [PRO] Hashicorp Vault extension and Liquibase Pro:
  • Use together for increased security and convenience of centralized properties. Note: This release works with Vault v1, and a v2 compatible release will follow up soon.
  • Security:
  • Vaults offer much greater security than defaults files or?environment variables?
  • Centralization:
  • Secure your database credentials, Pro license key, secure urls, and more in one central location.
  • Update your critical properties in one place, and all linked tools and jobs use the new values?.
  • [PRO] rollback-on-error command argument:
  • When set to true will attempt to rollback a failed update operation.
  • Note: changesets marked failonerror=false, do not count as error, and so do not rollback-on-error
  • [OSS] Liquibase Environment variables:
  • Now free to all users, not just Pro users.
  • Learn more at https://docs.liquibase.com/concepts/connections/liquibase-environment-variables.html
  • Enhancements:
  • [PRO] Added new modifyChangeSets tag to support specification of runWith attribute for all change sets in include or includeAll
  • API Breaking Changes:
  • Use PathHandler for writing log files, which allows using S3 and other extensions (DAT-11515) by @abrackx in #3438
  • Security, Driver and other updates:
  • Upgrade mockito-inline from 4.8.0 to 4.8.1 by @dependabot in #3382
  • Upgrade actions/cache from 3.0.8 to 3.0.11 by @dependabot in #3370
  • Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in #3423
  • Upgrade postgresql driver from 42.5.0 to 42.5.1 by @dependabot in #3501
  • Bump maven-plugin-plugin from 3.6.4 to 3.7.0 by @dependabot in #3450
  • Bump sqlite-jdbc from 3.39.3.0 to 3.39.4.0 by @dependabot in #3451
  • Bump maven-shade-plugin from 3.4.0 to 3.4.1 by @dependabot in #3422
  • Bump gmavenplus-plugin from 1.13.1 to 2.1.0 by @dependabot in #3391
  • Bump picocli from 4.6.3 to 4.7.0 by @dependabot in #3432
  • Bump jcc from 11.5.7.0 to 11.5.8.0 by @dependabot in #3414
  • Upgrade testcontainers-bom from 1.17.3 to 1.17.5 by @dependabot in #3341
  • Fixes:
  • Fixes generate-changelog view comments for Postgres (DAT-9410) by @abrackx in #3403
  • Adds DefaultChangeExecListener, catches and handles migration errors (DAT-9372) by @abrackx in #3431
  • Fixes nullpointer when dealing with LiquibaseException on updates. by @filipelautert in #3447
  • Resets changelog cache upon acquiring lock by @filipelautert in #3396
  • Allows createSequence field "dataType" to be use with DB2 as the database supports it. by @filipelautert in #3328
  • Defines "-- rollback empty" as the way to specify "no rollback needed". by @filipelautert in #3324
  • Fix create index on Postgresql and MSSQL using wrong column names when generating a changelog by @filipelautert in #3366
  • Fixed input string handling in CompareControl constructor by @filipelautert in #3309
  • Add 'ifExists' parameter to the dropView statement by @gzsombor in #3301
  • Fix getResourceAccessor logic to avoid setting changeLogDirectory when searchPath has already set by @MalloD12 in #3347
  • Ensures that Postgresql works with blob types bytea and oid (large objects) by @filipelautert in #3381
  • Improve int/tinyint/smallint/bigint handling in H2 by @MalloD12 in #3274
  • The onSqlOutput attribute does not work for preconditions in formatted SQL changelogs. by @dyadyushko in #3436
  • [DAT-11899] Modifies deploy plugin and distribution management. by @jnewton03 in #3457
  • Adds ChangeExecListener properties to maven plugin (DAT-12219) by @abrackx in #3443
  • make BufferedLogService thread safe by @StevenMassaro in #3470
  • Improved Sybase ASE Support by @carlos940513 in #665
  • Do not write output files for computed columns when executing dbDoc. Fixes #1088 by @rozenshteyn in #3398
  • Sequence owned by a table field must be included in database snapshot by @filipelautert in #3335
  • Fixes snapshot of case-sensitive views by @filipelautert in #3329
  • Fix include/includeAll to correct track relativeToChangelog=true paths using ./ or ../ by @nvoxland in #3355
  • Improved readability in the createCDILiquibaseConfig method. by @musttafayildirim in #3316
  • testing main and sha builds by @jnewton03 in #3481
  • Fix Postgresql autoIncrement Information in snapshot by @filipelautert in #3361
  • Treat "," as "or" when parsing context expressions. Fixes #1103 by @rozenshteyn in #3426
  • CORE-1127: Filter by context when doing a rollback. by @berryh in #898
  • Implement tagExists Maven command (Fix issue 1063) by @rozenshteyn in #3385
  • Fixes transaction handling within changesets on DB2 on z/OS by @MichaelKern-IVV in #3342
  • Improve dropAllForeignKeyConstraints performance by @Spindl in #2155
  • Adds error handling for updateCount (DAT-11950) by @abrackx in #3463
  • Adds error handling to update-to-tag (DAT-11951) by @abrackx in #3468
  • Adds error handling for update-testing-rollback command and updateTestingRollback goal (DAT-11952) by @abrackx in #3474
  • Fixes behaviour of includeAll by keeping the trailing slash on the path by @filipelautert in #3506
  • Restore FileSystemResourceAccessor and add tests. by @filipelautert in #3499
  • Simplify if statements to a single assignment. Avoid extra works. by @arturobernalg in #3375
  • Fixed resolveSibling method by updating URL resource type by @MalloD12 in #3413
  • Fix dependency query for PostgreSQL 15 by @Domm98CZ in #3456
  • Release liquibase-nochangeloglock extension with the others by @nvoxland in #3452

New in LiquiBase 4.17.2 (Nov 3, 2022)

  • Security Updates:
  • No security updates are necessary
  • JDBC Driver and Third-Party Library Updates:
  • Upgrade hsqldb from 2.5.2 to 2.7.1 by @dependabot in #3400
  • [opencsv-upgrade] Updates opencsv to 5.7.1 by @abrackx in #3419

New in LiquiBase 4.17.1 (Oct 22, 2022)

  • Fixes:
  • fix: Use default localhost finder for MacOs - fix #2098 by @grzi in #2134
  • Allow renameColumn on newer SQLite versions by @MalloD12 in #3264
  • Implement logic to validate dbms set at changeset and stored procedure levels by @MalloD12 in #3291
  • Fixed URIResource.resolveSibling by @nvoxland in #3354
  • Use liquibase StringUtil not lang3.StringUtils by @nvoxland in #3338
  • Handle absolute path in getAll method by @wwillard7800 in #3369
  • Updates
  • Security Updates:
  • None
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded ojdbc8 from 21.6.0.0.1 to 21.7.0.0 by @dependabot in #3223
  • Upgraded maven-shade-plugin from 3.3.0 to 3.4.0 by @dependabot in #3276
  • Upgraded slf4j-jdk14 from 2.0.2 to 2.0.3 by @dependabot in #3321
  • Upgraded snakeyaml maven reference from 1.32 to 1.33 by @nvoxland in #3359
  • Upgraded commons text transitive dependency by @abrackx in #338
  • OWASP Dependency Check: Reported Vulnerabilities:
  • hsqldb.jar - This is a vulnerability reported against the hsqldb driver. We are currently on the newest version of hsqldb and there is no fix for the issue as of yet.
  • snakeyaml.jar - This is a vulnerability reported against the snakeyaml. We are currently on the snakeyaml 1.33 and this issue has been fixed in 1.32.

New in LiquiBase 4.17.0 (Oct 11, 2022)

  • Notable Changes:
  • [PRO] The liquibase flow command and flow files are available with a Pro license. It allows you to create portable, platform-independent workflows that can run across different tools without modifying each workflow.
  • Learn more about flow here: liquibase flow file and command
  • If you want to provide feedback on this capability, please email [email protected].
  • [PRO] Pro license users can now integrate Amazon S3 with Liquibase. You can extend Liquibase to use remote file locations to enable secure, centralized file management.
  • Learn more here: S3 Remote Files
  • [PRO] Pro license users can use searchpath to find files located on S3 that cannot be found by an absolute path.
  • Learn more about the Searchpath command here.
  • Learn more about Searchpath with S3 here.
  • API Breaking Changes:
  • The liquibase.resource.ResourceAccessor APIs were updated to take advantage of the new liquibase.resource.Resource abstraction that was introduced. Code that USES the existing ResourceAccessor methods will continue to work as before with no changes, but if you have written custom implementations of ResourceAccessor there are new and changed methods to implement. For more information, see javadocs.liquibase.com
  • Enhancements:
  • Created new liquibase.resource.Resource interface by @nvoxland in #3064
  • Created ThreadLocalScopeManager by @nvoxland in #3240
  • Create liquibase_autocomplete.zsh by @szandany in #3130
  • Fixes:
  • AlterSequence: include NOORDER clause ordered="false" is specified by @LeBezout in #1044
  • Upper case result columns only for case-insensitive databases by @fbiville in #3102
  • Postgresql: Fix for case when current search_path is an empty string by @gadget in #3233
  • Fix missing catalog on add column rollback by @jandurovec in #921
  • Fix an error which can occur if getAutoCommit is called on a closed connection by @gpsfl in #3135
  • apply sqlVisitors to CompoundStatements on DB2z by @MichaelKern-IVV in #3220
  • Improved message when precondition onFail : MARK_RAN is set by @MultiM25 in #2238
  • Add default catalog condition to SequenceSnapshotGenerator for Oracle by @gabrielnardes in #3152
  • Fixed issue with h2 loadUpdateData not correctly handling values with the string " values " in the inserted data by @tomyy in #1831
  • Fix the smallserial issue not being parsed as a SmallInt type for Postgres by @MalloD12 in #3234
  • Remove snowflake unsupported logging from snapshot command (DAT-11291) by @abrackx in #3277
  • Fix "double" handling with H2 by @MalloD12 in #3273
  • Firebird: fix createIndex missing space around "computed" by @Markus-Patt in #1500
  • Test Race Condititons During Liquibase Locking by @schrieveslaach in #2327
  • Use configuration to get 'altTablespace', 'altSchema' and 'altCatalog… by @mehrabisajad in #3124
  • Add missing generator for parameterized SQL statements by @fbiville in #3225
  • Add catalog null check to fix initializing a MSSQL db issue by @MalloD12 in #3235
  • PD-2838: pointing DB list to docs by @adrian-velonis1 in #3280
  • Addition of liquibase.update() Enhancement Request #1614 by @Betlista in #1638
  • Fixed createView handling of replaceIfExists=true when the string "replace" exists in the view definition by @filipelautert in #3305
  • DAT-11407: replace backslashes in NotFoundResource URI by @StevenMassaro in #3322
  • Fix generateChangeLog and diffChangeLog logic to avoid including default schema name when it should not by @MalloD12 in #3246
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded snowflake-jdbc from 3.13.21 to 3.13.22 by @dependabot in #3196
  • Upgraded opencsv from 5.6 to 5.7.0 by @dependabot in #3243
  • Upgraded installer to use JDK 17.0.4.1 by @nvoxland in #3266
  • Upgraded sqlite-jdbc from 3.39.2.1 to 3.39.3.0 by @dependabot in #3267
  • Upgraded jaxb-core from 4.0.0 to 4.0.1 by @dependabot in #3292
  • Upgraded mariadb-java-client from 3.0.7 to 3.0.8 by @dependabot in #3293
  • Upgraded jaxb-runtime from 4.0.0 to 4.0.1 by @dependabot in #3294
  • Upgraded snakeyaml from 1.32 to 1.33 by @dependabot in #3310
  • OWASP Dependency Check: Reported Vulnerabilities:
  • hsqldb.jar - This is a vulnerability reported against the hsqldb driver. We are currently on the newest version of hsqldb and there is no fix for the issue as of yet.
  • jackson-databind - This is a vulnerability reported against the jackson-databind library we use internally. This library is repackaged for internal use only and not exposed as otherwise-callable code. We are currently on the newest version and there is no fix for the issue as of yet.

New in LiquiBase 4.16.1 (Sep 14, 2022)

  • New and Notable Capability:
  • Liquibase 4.16.0 incorrectly included the msal4j.jar and it's dependencies in internal/lib. This release does removes them. If you need the Azure authentication support provided by that library, you can continue to add i to the lib directory.
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded mssql-jdbc from 11.2.0.jre8 to 11.2.1.jre8 by @dependabot in #3262
  • OWASP Dependency Check: Reported Vulnerabilities:
  • snakeyaml.jar - This is a "medium" vulnerability reported against the snakeyaml library. We are currently on the newest version of snakeyaml and there is no fix for the issue as of yet.

New in LiquiBase 4.16.0 (Sep 9, 2022)

  • New and Notable Capability:
  • [LABS] The liquibase flow command and flow files are still available under the Liquibase Labs license.
  • Documentation on flow is here: https://docs.liquibase.com/flow
  • If you want to provide feedback on this capability, please email [email protected].
  • [PRO] The Quality Checks for Databases are now available to all Pro license users. These checks inspect your active database, or a liquibase-generated snapshot for compliance with your rules. Learn more here: https://docs.liquibase.com/quality-checks
  • Introduces "contextFilter" and "labelFilter" replacement settings by @nvoxland in https://github.com/liquibase/liquibase/pull/2971
  • Liquibase has always had a way to use "labels" and "contexts" and then filter on those attributes in order to control which changesets are considered for execution. The new "contextFilter" and "labelFilter" attributes help simplify workflows and prevent confusion.
  • Enhancements:
  • Added support for changeset references in rollback for Formatted SQL changelogs by @atzawada in https://github.com/liquibase/liquibase/pull/1386
  • Add schemas and includeSchema parameters to maven generateChangeLog by @MalloD12 in https://github.com/liquibase/liquibase/pull/3210
  • [PRO] Two new Pro commands update-one-changeset and update-one-changeset-sql serving as complements to rollback-one-changeset and roll-back-one-changeset-sql
  • Fixes:
  • Fix addColumn on mysql when including a "value" attribute by @nvoxland in https://github.com/liquibase/liquibase/pull/3070
  • Add support for AS <dataType> clause for H2 since version 2.0 by @marcus-nl in https://github.com/liquibase/liquibase/pull/3047
  • Fixed NUMBER not compatible with H2 by @nick318 in https://github.com/liquibase/liquibase/pull/3098
  • SpringResourceAccessor: fix issue with incorrect match pattern for files from classPath root by @danilmalkin in https://github.com/liquibase/liquibase/pull/3095
  • Made liquibase.snapshot.ResultSetCache an extensible class. by @breglerj in https://github.com/liquibase/liquibase/pull/2087
  • Added support for u2116 symbol win1251 cyrillic symbol of number by @Stuchalin in https://github.com/liquibase/liquibase/pull/1324
  • Tidy ExecutorService code, remove superfluous map access (Issue 1841) by @jamey-clari in https://github.com/liquibase/liquibase/pull/1842
  • Fixed order of enum values on MySQL 8 by @Tantalon in https://github.com/liquibase/liquibase/pull/3150
  • Removed invalid warning in Maven by @nvoxland in https://github.com/liquibase/liquibase/pull/3189
  • [PRO] DAT-10810 QC: checks show changes (--show-cols flag, drop some, etc) by @dyadyushko in https://github.com/liquibase/liquibase/pull/3187
  • Updates:
  • Security Updates:
  • Updates the snakeyaml dependency shipped in the liquibase-maven-plugin pom to address CVE-2022-25857
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded postgresql from 42.4.0 to 42.4.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3145
  • Upgraded mariadb-java-client from 3.0.6 to 3.0.7 by @dependabot in https://github.com/liquibase/liquibase/pull/3149
  • Upgraded sqlite-jdbc from 3.36.0.3 to 3.39.2.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3148
  • Upgraded mssql-jdbc from 10.2.1.jre8 to 11.2.0.jre8 by @dependabot in https://github.com/liquibase/liquibase/pull/3162
  • Upgraded postgresql from 42.4.1 to 42.5.0 by @dependabot in https://github.com/liquibase/liquibase/pull/3199
  • Upgraded sqlite-jdbc from 3.39.2.0 to 3.39.2.1 by @dependabot in https://github.com/liquibase/liquibase/pull/3198
  • Upgraded snakeyaml from 1.30 to 1.31 by @dependabot in https://github.com/liquibase/liquibase/pull/3224
  • Upgraded snakeyaml in liquibase-maven-plugin from 1.27 to 1.31 by @dependabot in https://github.com/liquibase/liquibase/pull/3263
  • OWASP Dependency Check: Reported Vulnerabilities:
  • snakeyaml.jar - This is a "medium" vulnerability reported against the snakeyaml library. We are currently on the newest version of snakeyaml and there is no fix for the issue as of yet.

New in LiquiBase 4.15.0 (Aug 6, 2022)

  • New and Notable Capability - liquibase flow command:
  • liquibase flow and new flow-file (DAT-10419) by in #2946
  • The liqubase flow command and the Flow File on which it operates allow the user to place multiple commands within a single file so they can all run sequentially with a single command into the CLI. This is currently a Liquibase Labs restricted capability, so please contact [email protected] to request a license key. Learn more at http://docs.liquibase.com/flow.
  • Enhancements:
  • Added duplicateFileMode setting for maven plugin by @nvoxland in #3119
  • Fixes:
  • Fix maven plugin pro commands for local developer install by @StevenMassaro in #3101
  • Update Derby reserved words by @andrewhj in #1971
  • Output "may lose settings" warning on mysql/mariadb for more impacted change types by @nvoxland in #3045
  • Improved "include" fix performance: optimized normalizePath method by @lzxgyh in #3063
  • Removed DatabaseInfoAttributes in XSD by @kazz62 in #2239
  • Do not split SQL on delimiters within BEGIN/END blocks by @nvoxland in #1589
  • Set max fractional timestamp digits to 12 for all DB2 editions (fix #2880) by @ctgnz in #2892
  • Fix query for snapshotting views on DB2/Z by @michaelmatthiaskern in #2712
  • Fix for bug 2711: Error when calling a procedure with parameters on DB2Z by @michaelmatthiaskern in #2765
  • Improve CLI error messages by @nvoxland in #3078
  • Improved handling of endDelimiter="/" by @nvoxland in #3118
  • Upgrade installer to ship with jdk 17.0.4+8 by @nvoxland in #3104
  • Improve failure message of RowCountPrecondition to preserve expected row count by @martinspielmann in #3093
  • Changed what sequence attributes are included in diff/generate changelog for Snowflake by @yodzhubeiskyi in #3121
  • Fix columnNames snapshot attribute of uniqueConstraints for Snowflake by @yodzhubeiskyi in #3123

New in LiquiBase 4.14.0 (Jul 27, 2022)

  • Notable Changes:
  • Split liquibase-core and liquibase-commercial jar files by @nvoxland in #3050
  • This change affects new downloads of Liquibase Pro. liquibase-core-.jar contains only the open-source license. If you use Liquibase Pro or other commercial add-ons, you must also install liquibase-commercial-.jar.
  • Added liquibase.changelogParseMode setting by @nvoxland in #3057
  • Enhancements:
  • Warn if XSD version does not match build version in validate command (DAT-9874) by @StevenMassaro in #3016
  • Allow use of pro-only objects for filtering with generateChangeLog (DAT-9542) by @StevenMassaro in #3068
  • Improve connection exception by including underlying driver exception trace by @hessjcg in #3033
  • Add Closeable/AutoCloseable interface to liquibase.database.Database by @zorglube in #2990
  • Fixes:
  • Fixed Formatted SQL "property" parsing by @nvoxland in #3037
  • Ensure Postgresql search_path entries are quoted correctly by @nvoxland in #3009
  • Updated "Change Set" wording to "Changeset" by @kataggart in #3042
  • Improved error when JAVA_HOME is set to invalid value (DAT-10545) by @StevenMassaro in #3074
  • Fixed autoIncrement incrementBy/startWith support in MySQL, H2, HSQLDB, and MariaDB by @tozogabee in #3026
  • Improve renameColumn generated SQL on mssql by @mide25 in #783
  • Updates:
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded mariadb-java-client from 3.0.5 to 3.0.6 by @dependabot in #3021
  • Upgraded testcontainers-bom from 1.17.2 to 1.17.3 by @dependabot in #3020
  • Upgraded postgresql from 42.3.4 to 42.4.0 by @dependabot in #2935
  • Bump jaxb-runtime from 2.3.6 to 4.0.0 by @dependabot in #2964

New in LiquiBase 4.13.0 (Jul 11, 2022)

  • Notable Changes:
  • PRO DAT-10083 - Added PSQL native executor feature by @abrackx
  • You can now use the runWith command to pull in PSQL changesets which require highly specialized SQL that often cannot easily be deployed over JDBC. For more information, see the documentation here.
  • Enhancements:
  • Added new liquibase.duplicateFileMode setting by @nvoxland in #3006
  • Add additional info in CLI's --version output by @nvoxland in #2942
  • Added support for new "searchPath" global configuration by @nvoxland in #2917
  • PRO DAT-10575: add labels and contexts parameter to checks run command by @StevenMassaro
  • PRO DAT-10803 added sproc support for Snowflake by @KushnirykOleh
  • Fixes:
  • Hide CommandFailedException stacktrace when thrown to set exit code (DAT-9608) by @StevenMassaro in #2938
  • Update copyright year in txt files; also update links in txt files (DAT-10261) by @StevenMassaro in #2955
  • add support for default-catalog-name in SQL Server (DAT-10484) by @StevenMassaro in #2940
  • Make additional query for more column information for MariaDB DAT-8693 by @wwillard7800 in #2898
  • Include should fail if a parser cannot be found for the specified file by @nvoxland in #2972
  • Improved postgresql prepared statement performance by @nvoxland in #2914
  • Cleanup relative paths preventing sql files being found by the class loader by @marcsowen in #2932
  • Fix missing attributes in serialization by @tms-91 in #2585
  • Improved parsing of single-quoted strings by @nvoxland in #2949
  • DAT-10260: add outputFile argument in maven plugin for checks.run target by @StevenMassaro in #2975
  • Formatted SQL files with uppercase in the liquibase attributes (DAT-10531) by @abrackx in #2985
  • handle empty or null input to stripComments method (DAT-10296) by @StevenMassaro in #2970
  • Fixed issue with parameter expression parsing by @nvoxland in #2984
  • Fixed before/after/at column arguments in addColumn by @nvoxland in #2943
  • Adds liquibase.psql.conf example (DAT-10303) by @abrackx in #2939
  • [DAT-10093] added schema escaping to getColumns call to jdbc metadata classes by @KushnirykOleh in #2895
  • Use "numeric" (without parameters) data type in PostgreSQL by @LonwoLonwo in #1906
  • Force "json" resultset formats in Snowflake when running Java 17+ by @nvoxland in #3019
  • PRO DAT-9608: Hide CommandFailedException stacktrace when thrown from checks run by @StevenMassaro
  • PRO Reenables oracle integration tests by @abrackx
  • PRO DAT-10283 Checks should also look at included contexts and labels by @wwillard7800
  • PRO DAT-10667: Hide disabled checks from unsupported changeset type list by @StevenMassaro
  • PRO DAT-10690 and DAT-10691: Hide validated changelogs and database objects when no license key is provided by @StevenMassaro
  • PRO DAT-10296: Handle empty or completely commented out changesets in CheckForSpecificPatternsInSQL check by @StevenMassaro
  • Updates:
  • Security Updates:
  • No security updates needed in this release.
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded jaxb-core from 2.3.0.1 to 4.0.0 by @dependabot in #2962
  • Upgraded snowflake-jdbc from 3.13.19 to 3.13.20 by @dependabot in #3001
  • Upgraded mariadb-java-client from 3.0.4 to 3.0.5 by @dependabot in #2881
  • Upgraded ojdbc8 from 21.5.0.0 to 21.6.0.0.1 by @dependabot in #2987
  • Upgraded h2 from 2.1.212 to 2.1.214 by @dependabot in #2944
  • PRO Bump proguard-maven-plugin from 2.5.3 to 2.6.0 by @dependabot
  • PRO Bump maven-scm-plugin from 1.12.2 to 1.13.0 by @dependabot
  • PRO Bump assertj-core from 3.22.0 to 3.23.1 by @dependabot

New in LiquiBase 4.12.0 (Jun 18, 2022)

  • Breaking Changes:
  • Support for Snowflake database has been moved from the external extension liquibase-snowflake into the main Liquibase artifact. If you are using the snowflake extension, remove it from your lib directory or however you are including it in your project. If you are using the Docker image, the snowflake docker label will no longer be updated so you need to update your reference to either latest or the version tag you prefer. For CLI users, the Snowflake driver also ships out of the box and so you should remove that from the lib directory as well #2841
  • Enhancements:
  • Quality Checks for Databases (DAT-9298) by @StevenMassaro in #2715
  • This capability extends checks from just the changelog to look at the database itself for conditions of compliance, security, and more. This is currently a Liquibase Labs restricted capability, so please contact [email protected] to request a license key.
  • Added a new "liquibase.showBanner" setting. Setting this value to 'false' will disable the Liquibase startup banner from being shown. By @nvoxland in #2871
  • Added a new "liquibase.missingPropertyMode" setting to control what happens when a changelog contains a ${...} string that doesn't correspond to a set changelog property. The default continues to be "preserve" which leaves it as-is. But other possible values are ERROR or EMPTY which will either stop execution with an error or replace it with an empty string. By @dwieland in #2656
  • Added new "liquibase.preserveSchemaCase" argument to preserve the case of schemas exactly as passed to the various schema settings. Default remains "false" as before. DAT-10027 By @wwillard7800 in #2888
  • Introduced "latest" xsd file path. In addition to http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.12.xsd type XSDs references, you can now also use http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd instead. By using "latest", Liquibase will use the bundled XSD for it's version. The uploaded "latest" XSD will always be the most recent Liquibase release, so note how they can be different and locally cached IDE versions may be different yet. By @nvoxland in #2886
  • Added new ConfiguredValueModifier extension point. This allows extensions to be written which will translate or convert configuration values from what was passed by the user before the value is passed to the internal code. By @mcred in #2252
  • Updated StandardLockService interface to make it more useful for extensions by @Cliftonz in #2785
  • Fixes:
  • Fixed BLOBs in loadData for MySQL/MariaDB by @MichaelCkr in #2595
  • Fixed getting ENUM column values from Mysql database having multiple schemas by @akatiyar in #2616
  • Added logic to Derby.getDefaultDriver() to check for availability of different driver classes by @AlexanderSashchenko in #2571
  • Fixed TableOutput spaces when using long words (DAT-10069) by @StevenMassaro in #2879
  • Fixed addAutoIncrement startValue and incrementBy support on postgresql by @nvoxland in #2588
  • Support non-classpath: protocols in Spring by @reallyinsane in #2524
  • Fixed #2780: AddColumnChange with schema and NOT NULL constraint fails by @MartinRied in #2781
  • Make extension matching for SQL parsers case-insensitve DAT-10265 by @wwillard7800 in #2884
  • Restored outputDefaultSchema and outputDefaultCatalog command arguments by @nvoxland in #2834
  • Quote liquibase.jar path in bash launcher by @nvoxland in #2885
  • Fix for working with Firebird 2 and newer versions. Fixes nullables and boolean type. by @mngsgoncalves in #2277
  • Fixed issue if change changelog object is null by @kamalnigam in #2837
  • Filter out license key strings for Hub communication DAT-10522 by @wwillard7800 in #2926
  • Specify which parameter is missing in the error message by @bendem in #2567
  • Split license information into OSS vs. Pro directories by @nvoxland in #2868
  • Use the method setBlob to insert blob data by @xjodoin in #605
  • Smooth out differences in "./" paths by @nvoxland in #2915
  • Include inherited labels in databasechangelog table by @nvoxland in #2870
  • Restored OSGi headers by @nvoxland in #2924
  • Working on better Git Bash console solution DAT-10230 by @wwillard7800 in #2882
  • close InputStream in SQLFileChange (DAT-9855) by @StevenMassaro in #2920
  • Support prepared statements for query by @fbiville in #2913
  • Implement NOT VALID for Postgres databases by @coenvk in #2600
  • Updates:
  • Security Updates:
  • No security updates needed in this release
  • JDBC Driver and Third-Party Library Updates:
  • Added connector-api.jar to internal/lib by @nvoxland in #2873
  • Upgraded mysql-connector-java from 8.0.28 to 8.0.29 by @dependabot in #2798
  • Move opencsv to be non-shaded by @nvoxland in #2903
  • Added snowflake driver to CLI by @nvoxland in #2931
  • Upgraded mssql-jdbc from 10.2.0.jre8 to 10.2.1.jre8 by @dependabot in #2846
  • OWASP Dependency Check: Reported Vulnerabilities:
  • jcc.jar - This is a vulnerability reported against the IBM DB2 JDBC driver. It is awaiting reanalysis. We are currently on the newest version of jcc.jar https://github.com/advisories/GHSA-fm4j-wr6m-32wg] (https://nvd.nist.gov/vuln/detail/CVE-2008-1997)
  • h2.jar - This is a vulnerability reported against the H2 driver. It is awaiting reanalysis. We are currently on the newest version of h2.jarhttps://github.com/advisories/GHSA-wm64-883p-84j3] (https://nvd.nist.gov/vuln/detail/CVE-2018-14335)

New in LiquiBase 4.11.0 (May 25, 2022)

  • Breaking Changes:
  • Starting with 4.11, we moved the global libraries we ship with the CLI from the lib directory to a new internal directory structure. The lib directory is still included in the classpath as the place users can add whatever additional global drivers/libraries they need.
  • The liquibase --version output has been enhanced to also include the 3rd party libraries being used and their versions.
  • Impacts:
  • If you are upgrading Liquibase by overwriting an existing directory, you will have duplicate libraries between lib and internal/lib. You should manually delete any files in lib which you did not add yourself. Liquibase will continue to work even with the duplicate libraries, but you may not be running the latest version of ones we ship, since the lib files take priority over what is in internal/lib. New installs are not impacted by this.
  • If you have any automation that did anything with our shipped files in lib you will need to update it to reflect the new internal/lib location
  • For security reasons, we have also changed what is logged by the CLI to only log liquibase channel messages by default, rather than all log channels. If you are relying on logging from non-Liquibase libraries, you can add channels with the new --log-channels flag, including --log-channels=all to restore the old functionality.
  • Enhancements:
  • Moved shipped jar files out of lib and into a new internal/lib directory by @nvoxland in #2850
  • To help with performance troubleshooting, there is now a --monitor-performance argument for the CLI (and only the CLI) which enables profiling of the Liquibase run. The generated profiling information can help us understand and fix performance issues easier. #2599
  • Upgraded Java shipped with the installers from 11 to 17 by @nvoxland in #2602
  • Added whitelist for CLI log channels by @nvoxland in #2859
  • Fixes:
  • Do not throw a confusing error if a datatype specified as a changelog parameter is not expanded by @nvoxland in #2772
  • Fixed SQLite not correctly snapshotting tables with underscores in the name by @nvoxland in #2778
  • Fixed local XSD lookup by @nvoxland in #2830
  • Standardized "start-h2" commands on "liquibase init start-h2" logic by @nvoxland in #2597
  • Support default values in the format (0)::real by @nvoxland in #2836
  • Fix handling of defaultSchemaName on Postgresql by @nvoxland in #2812
  • Introduce generateStatementsFromRows for extensions by @fbiville in #2686
  • Fixed XSD type of "ordered" and "cycle" attributes to be booleanby @DartVerder in #2725
  • Remove custom log message filtering by @nvoxland in #2777
  • Spring Boot: better support relativeToChangelogfile when ResourceLoaders return FilteredReactiveWebContextResources by @erik-meuwese-topicus in #2758
  • Fix ForeignKeyComparator when foreign key table is not known by @joserebelo in #2565
  • Test System Framework: add support for "liquibase.sdk.testSystem.skip" property by @StevenMassaro in #2838
  • Test System Framework: stop database containers when spock execution ends by @StevenMassaro in #2843
  • Updates:
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded picocli from 4.6.1 to 4.6.3 by @dependabot in #2518
  • Upgraded jaxb libraries to the newest 2.3.x versions by @nvoxland in #2793
  • Upgraded snakeyaml from 1.27 to 1.30 by @dependabot in #2498
  • OWASP Dependency Check: Reported Vulnerabilities:
  • jcc.jar - This is a vulnerability reported against the IBM DB2 JDBC driver. It is awaiting reanalysis. We are currently on the newest version [CVE-2008-1997] (https://nvd.nist.gov/vuln/detail/CVE-2008-1997)
  • h2.jar - This is a vulnerability reported against the H2 driver. It is awaiting reanalysis. We are currently on the newest version [CVE-2018-14335] (https://nvd.nist.gov/vuln/detail/CVE-2018-14335)

New in LiquiBase 4.10.0 (May 5, 2022)

  • Security Updates:
  • Upgraded postgresql from 42.3.2 to 42.3.4 to address CVE-2022-26520 by @dependabot in #2769
  • Vulnerability introduced in org.postgresql:[email protected]
  • Fixed in org.postgresql:[email protected]
  • JDBC Driver and Third-Party Library Updates:
  • Upgraded oracle driver to 21.5.0.0 by @nvoxland in #2791
  • Upgraded jcc from 11.5.6.0 to 11.5.7.0 by @dependabot in #2421
  • Upgraded mssql driver to 10.2.0 by @nvoxland in #2790
  • Upgraded h2 from 2.1.210 to 2.1.212 by @dependabot in #2740
  • Upgraded sqlite-jdbc from 3.34.0 to 3.36.0.3 by @dependabot in #2412
  • Upgraded jaybird from 4.0.3.java8 to 4.0.6.java8 by @dependabot in #2802
  • Upgraded hsqldb from 2.4.0 to 2.5.2 by @nvoxland in #2797
  • Updated information in "licenses" directory by @nvoxland in #2795
  • Upgraded mariadb driver to 3.0.4 by @nvoxland in #2789
  • Enhancements:
  • Quality checks for Maven - checks.run and checks.show goals [DAT-9033] [DAT-9034]
  • For more information, see Maven checks.run and Maven checks.show.
  • Allow CompositeResourceAccessor to have a non-fixed size list of ResourceAccessor so that the list can be added to/removed from by @wwillard7800 in #2650
  • Correctly handle null class package names in the logging system by @nvoxland in #2763
  • Handle URLs correctly in error conditions DAT-9882 by @wwillard7800 in #2709
  • Validate formatted SQL changelog for invalid patterns DAT-7721 by @wwillard7800 in #2761
  • Fixes:
  • [PRO] Diff commands correctly recognizing triggers as changed/different in Postgresql10 [DAT-9559]
  • Fix EnterpriseDB database recognition by @nvoxland in #2767
  • Fix start failure with NullPointerException when Environment contains empty string Key (fix Issue 2631) by @feltonma91 in #2636
  • Fix createTable on Mysql not preserving primary key information when remarks also defined on the column by @nvoxland in #2752
  • Updated information in "licenses" directory by @nvoxland in #2795

New in LiquiBase 4.9.1 (Mar 29, 2022)

  • Notable Changes:
  • [PR#2666] [nvoxland] Liquibase 4.9.1 release is a patch release that fixes the MANIFEST.MF location in the liquibase.jar file for tools that require the MANIFEST.MF file to be the first entry in the jar archive.
  • If the MANIFEST.MF file is not the first entry, java.util.jar.JarInputStream#getManifest() reading the MANIFEST.MF file will not return the manifest information appropriately. The PR fixes issue #2648.
  • [Issue#2672] Addresses the remaining OSGi-related packaging problems to fully restore Liquibase support in OSGi environments.
  • Fixes:
  • [PR#2651] Fixed the issue with a malicious software alert for the Liquibase macOS Installer preventing from proceeding with the installation. [DAT-9524]
  • [PR#2643] Fixed an issue in snapshot on PostgreSQL where non-integer datatypes that used a default value with a sequence would not be handled correctly [DAT-8670]
  • [PR#2691] Fixed invalid JSON in the example-changelog.json file [DAT-9893]

New in LiquiBase 4.9.0 (Mar 17, 2022)

  • Liquibase 4.9.0 introduces the following functionality:
  • [PRO] Quality Checks JSON object so that your application can easily parse through the Liquibase output [DAT-9094]
  • For more information, see Quality Checks JSON Object.
  • Quality checks for Maven - checks.run and checks.show goals [DAT-9033] [DAT-9034]
  • For more information, see Maven checks.run and Maven checks.show.
  • [PR#2558] [kavya-shastri] [Breaking Change]The change in the usage of the Liquibase global configuration for the secureParsing parameter to prevent the entity resolver from scanning the network for missing XSDs. If you reference an XSD other than one from Liquibase and have never stored them in your classpath, Liquibase will no longer automatically download and use the XSD from the internet for security reasons. The default value for secureParsing is true, but you can set it to false in any of the Liquibase configuration locations. For more information, see XSD support.
  • Enhancements:
  • [PR#2434] [Balázs Dési] Added the Maven validate goal to maven-liquibase-plugin to provide access to the existing Liquibase validate command and be available not only in CLI, but also in Maven
  • For more information, see Maven validate.
  • Added the ability to use sqlcmd on an instance with multiple databases [DAT-9513]
  • For more information, see Using the SQLCMD integration and runWith attribute with Liquibase Pro and MSSQL Server.
  • Added support for Liquibase, Spring Boot, and SQL Plus run with Kerberos [DAT-9409]
  • For more information, see Using Liquibase and Spring Boot with SQL Plus and Kerberos Authentication.
  • [PR#2561] [Wesley Willard] Added the --schemas argument to the snapshot command to be able to compare a multi-schema database to its snapshot [DAT-9433]
  • [PR#2606] [Wesley Willard] Added a best practice message for the generate-changelog command so that you can check if the splitStatements attribute works for your environment when generating formatted SQL changelogs [DAT-9327]
  • Added the StripComments attribute for the SQLUserDefinedPatternCheck quality check to choose the code that the SQLUserDefinedPatternCheck searches, including the option for the commented code. The StripComments attribute strips comments from SQL before searching for the string. The default value is N (no). [DAT-9098]
  • [PR#2273] [Tsvi Zandany] Added the autocomplete option for quality checks commands running on macOS
  • Fixes:
  • [PR#2542] [nvoxland] Fixed the --should-snapshot-data CLI parameter to be preserved when the --data-output-directory property is not specified in the command
  • [PR#2330] [Inane Mohammed] Fixed the issue with checking the referenceSnapshot parameter instead of referenceDatabase for the potential null value
  • [PR#2521] [Steven Massaro] Added a label, context, and comment to the example-changelog.sql file that comes with the Liquibase installation package [DAT-9325]
  • [PR#2556] [nvoxland] Fixed the CockroachDB processes so that Liquibase checks the URL first rather than proceeding with SQL calls
  • [PR#2569] [Clarence Dimitri CHARLES] Made FormattedSqlChangeLogParser to be reusable for extensions
  • [PR#2377] [devorgpl] Fixed the issue with updating statements when the onlyUpdate attribute is false in the loadUpdateData Change Type for HSQL
  • [PR#1908] [Emiliano Capoccia] Fixed the issue with retrieving the CockroachDB version. As part of the fix, Liquibase generates version-specific autoincrement SQL statements for CockroachDB identity columns:
  • SMALLSERIAL, SERIAL, and BIGSERIAL for versions earlier than 21.2
  • GENERATED BY DEFAULT AS IDENTITY for version 21.2 or later
  • [PR#2135] [PR#2133] [Saucistophe] [mkobylarz] Fixed the issue with the endDelimiter attribute not being respected during the Liquibase update. The fix for endDelimiter does not break the handling of trailing comments in SQL statements. [LB-2186]
  • [PR#2573] [nvoxland] Fixed the quoting for the MANIFEST.MF file for correct versioning
  • [PR#2572] [Steven Massaro] Fixed the issue with generating changelogs for PostgreSQL columns that use SET DEFAULT [DAT-8779]
  • [PR#2589] [nvoxland] [Marcel Blonk] Fixed the MD5 checksums generated by older versions of Liquibase to be correctly updated in the DATABASECHANGELOG table when a more recent version of Liquibase executes against the database. The PR fixes issue #2580.
  • [PR#2592] [nvoxland] Added support for the double precision type in MySQL. The PR fixes issue #2337.
  • [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes issue #1774.
  • [PR#2387] [Jenson3210] Fixed the handling of date and time in the loadData Change Type
  • [PR#2566] [nvoxland] Updated OpenCSV from 5.5.2 to 5.6

New in LiquiBase 4.8.0 (Feb 23, 2022)

  • Notable Changes:
  • Liquibase 4.8.0 introduces the following functionality:
  • The init hub subcommand that connects your local Liquibase activity to Liquibase Hub and sets up the Liquibase environment to use Liquibase Hub. [DAT-8769]
  • Note: For more information, see init hub and Getting Started with Liquibase Hub.
  • [PRO] The sqlcmd utility support to process complex SQL for MSSQL Server. Liquibase provides the liquibase.sqlcmd.conf file to pass arguments to your executor when running Liquibase Pro. [DAT-7447]
  • Note: For more information, see Using the SQLCMD integration and runWith attribute with Liquibase Pro and MSSQL Server.
  • Changes to the behavior of the XML parser, which no longer allows referencing external DTD files for security reasons. If you use externally defined entities or any other potentially insecure XML feature in your changelogs, set liquibase.secureParsing=false. [PR#2384] [LB-2218]
  • Note: For more information about the ways to set the parameter, see Command Parameters.
  • The upgrade of the postgresql (from 42.2.12 to 42.3.2) and h2 (from 2.0.206 to 2.1.210) drivers that Liquibase includes in the installation package. If you use those drivers and upgrade an existing Liquibase installation, remove the earlier versions of drivers from the LIQUIBASE_HOME/lib directory.
  • Enhancements:
  • Implemented the SimpleObjectConstructor interface for DB2 on z/OS [DAT-8580]
  • Included the CLI instructions on how to use the properties file with a nonstandard name when running the init project subcommand [DAT-9041]
  • Improved the output message for init start-h2 when the H2 database driver is specified, but there is no connection detected [DAT-8992]
  • Added validation errors for the enableCheckConstraint, disableCheckConstraint, dropPackage, dropPackageBody Change Types [DAT-9017]
  • [PR#2367] [Mike Olivas] Added example rollback scripts to the example-changelog.sql file [LB-2220]
  • [PR#1648] [Daniel Gray] Improved the exception error message for the customChange node with no class attribute [LB-1144]
  • [PR#2222] [msimko81] Added the offline mode support for the rollback-sql <tag> operation [LB-2198]
  • [PR#2273] [Tsvi Zandany] Added the autocomplete quality checks commands for macOS
  • [PR#2308] [Valentin Blistin] Added the close method for the ClassLoaderResourceAccessor class [LB-2205]
  • Fixes:
  • Fixed the renameSequence Change Type generating an uppercase SQL instead of lowercase and causing failures with case-sensitive databases [LB-1763]
  • Fixed the generate-changelog and diff commands to show and generate a proper SQL with autoincrement for PostgreSQL [DAT-8779]
  • [PR#1320] [PR#2329] [Anatoly S] [Nathan Voxland] [Matteo Turra] Improved the UTF-8 character support in the <sql> tags [LB-562]
  • [PR#2139] [wziebicki] Improved the UniqueConstraintSnapshotGenerator class to add a table name to the Oracle database query so that the cache key can contain it, and the unique constraint can be read from cache [LB-2206]
  • [PR#2335] [erzsebet] Removed duplicated DATABASECHANGELOGLOCK SQL statements when running the update-sql command against a new database [LB-2208]
  • [PR#2505] [Nathan Voxland] [Dries Samyn] [erzsebet] Fixed the OSGI support with the MANIFEST.MF file in the liquibase-core-4.7.0.jar file. The PR fixes PR#2361.
  • [PR#2366] [Steven Massaro] Made the sp_rename function to be lowercase when using MSSQL Server
  • [PR#2429] [Nathan Voxland] [Mirko Dostmann] [Alex Litovsky] Fixed the Ant and Apache Derby support. The PR fixes PR#2388 and PR#2391. [LB-2222]
  • [PR#2397] [Nathan Voxland] [maxencelaurent] Implemented the logging of exceptions in the CDI integration. The PR fixes PR#2354. [LB-2223]
  • [PR#2398] [Nathan Voxland] [urvanov-ru] Fixed the handling of schema snapshots with an underscore. The PR fixes PR#1604. [LB-2219]
  • [PR#2340] [Nathan Voxland] [nickshoe] Enabled adding the computed=true columns with no type set in the createTable Change Type. The PR fixes PR#2283. [LB-2215]
  • [PR#2372] [Nathan Voxland] [Henrik Sachse] [rburgst] Fixed the autoincrement syntax for H2 2.0 and later versions. The PR fixes PR#2362. [LB-2216]
  • [PR#2549] [Nathan Voxland] [jenhae] Added validation errors for Liquibase and MSSQL Server if the ordered clause is specified in the createSequence or alterSequence Change Type. The PR fixes PR#2528.
  • [PR#2351] [Wesley Willard] [Joseph Cen] Fixed the handling of properties defined with different dbms filters. The PR fixes PR#2231. [LB-2217]
  • [PR#2122] [Tobias Liefke] Fixed the handling of the classpath for resources. The PR fixes PR#2121.

New in LiquiBase 4.7.1 (Jan 24, 2022)

  • Enhancements:
  • Added a new quality check – RollbackRequired. The check detects when a changeset does not have a rollback. [DAT-8871]
  • Enabled SQL parser for the TableColumnLimit check to work with formatted SQL changelogs [DAT-8531]
  • Implemented the --auto-update quality check parameter, which allows automatic backup and updating of the liquibase.check-settings.conf file when new quality checks are available. [DAT-8752]
  • CLI: --auto-update=[on|off]
  • liquibase.properties file: liquibase.command.checks.show.autoUpdate: [on|off]
  • [PRO] Environment variable: LIQUIBASE_COMMAND_CHECKS_SHOW_AUTO_UPDATE=[ON|OFF]
  • Note: You can use the property not only with the show command but any other quality checks command.
  • [PR#1932] [Sergeev Viktor] Enabled changeset execution details to be shown in the output [LB-1886]
  • [PR#2261] [Nathan Voxland] Marked the liquibase-maven-plugin logging configuration as deprecated [LB-2183]
  • [PR#2217] [Wesley Willard] [Marcono1234] Made lock granted time consistent with date executed time. Modified the listLocks output message. The PR fixes PR#2029. [LB-2126]
  • [PR#2293] [Nathan Voxland] [ThisOldDog] Added support for the additional information with "double" datatypes in MySQL. The PR fixes PR#2169. [LB-2195]
  • [PR#2359] [AlexanderSashchenko] Added validation errors for the SQLite and DB2 on z/OS databases [DAT-8906]
  • [PR#2348] [Steven Massaro] Updated the URLs in the CLI output to direct to the documentation website [DAT-8947]
  • [PR#2333] [Wesley Willard] Enabled property parsing in FormattedSqlChangeParser [DAT-4793]
  • [PR#2356] [Steven Massaro] Added the output message which points to the init project command if you miss a supported argument in any command [DAT-8641]
  • Fixes:
  • [PR#2364] [Nathan Voxland] [M-Koers] Made EnterpriseDBDatabase detection less broad. The implementation of EnterpriseDBDatabase picked up database with "edb" in the URL instead of an actual EDB URL. The PR fixes PR#2363. [LB-2214]
  • Fixed quality checks with OBJECT_TYPES=TABLE, COLUMN, SEQUENCE specified in the same ObjectNameMustMatch rule to find all matches [DAT-8716]
  • Fixed the runWith=changeLogProperty attribute not working in a formatted SQL changelog [DAT-4793]
  • [PR#2270] [Nathan Voxland] [Michael Kroll] Fixed the handling of the cacheSize attribute in the createSequence and alterSequence Change Types for MariaDB. The PR fixes PR#2147. [LB-2191]
  • [PR#2269] [Nathan Voxland] [Tsvi Zandany] Fixed the handling of the tag-exists command old syntax in Liquibase 4.4 and later (liquibase tagExists myTag) to correctly convert the pattern into new versions. The PR fixes PR#2109. [LB-2192]
  • [PR#2188] [Cullen Coyle] Added the columnDataType attribute for the generated setColumnRemarks changesets to fix an error in MySQL [LB-2199]
  • [#932] [Matthias Wuttke] Added support for sequences in MaxDB [LB-41]
  • [PR#2282] [AlexanderSashchenko] Fixed the drop column statement generator for DB2 on z/OS [DAT-8744]

New in LiquiBase 4.7.0 (Jan 10, 2022)

  • Enhancements:
  • [PRO] Improved the output of the rollback-one-update command [DAT-7590]
  • [PR#2244] [szandany] Enabled the use of the jdbc:edb URL for Liquibase to recognize EnterpriseDB
  • [PR#2225] [nvoxland] [catholic-indulgence-vaper] Enabled the use of lowercase sys.synonyms objects for the generate-changelog and diff-changelog commands in Liquibase and SQL Server. The PR fixes PR#2044.
  • Added DB2 on z/OS database type and Java classes for Liquibase [DAT-8575]
  • New Commands: init project and init start-h2
  • Bump H2 from 1.4.200 to 2.0.206 in /liquibase-dist
  • Fixes:
  • Fixed the generateChangeLog wrong dependency order: the addPrimaryKey Change Type appeared before its base table in PostgreSQL [DAT-8256]
  • Fixed the quality checks settings file to be created using both relative and absolute paths [DAT-8275]
  • Fixed quality checks reporting only the first failure for a changeset to report all failures in outputs [DAT-8630]
  • [PR#2066] [smainz] Fixed the loadData Change Type to recognize CSV files when loading data with the path that contains a dot character ('.')
  • [PR#2071] [nhumblot] [philhinco] Fixed the addNotNullConstraint Change Type causing the "Data too long" error message. The PR fixes PR#1054.
  • [PR#2073] [smainz] Fixed the relativeToChangelogFile attribute for loadData, createProcedure, and createView Change Types
  • [PR#2081]Fixes OSGI support (manifest, class loading) [2054]
  • [PR#2228]Handle the fact that FK names are not always unique
  • [PR#928]CORE-931: addColumn should support not-null constraint with an initial...
  • [PR#1817]Added MSSQLDatabase specific error evaluation when creating lock table
  • [PR#1970]Improve addColumn handling in SQLite
  • [PR#2197]Add three new optional SQL plus properties into liquibase.sqlplus.conf and copy it into example/sql folder [DAT-7618]
  • [PR#2192] Fix COLUMN_SIZE for PostgreSQL NUMERIC[] datatype by adding it as unmodifiable data type for PostgresDatabase [LB-2110]
  • [PR#2173]Handle multi-column indexes during JSON snapshot [LB-373]
  • [PR#2185]'Validate' exit code should be 1 on error
  • [PR#2180]Support Mysql Function Indexes
  • [PR#2167]Fixed --verbose flag setup in unexpected-changesets
  • [PR#2921]Do not escape the backslash in values stored in the objects.
  • [PR#2168]YAMLChangelogParser: Fix parsing logic around changeLogId in a Map
  • [PR#2207]Properly split table rows which contain a line separator [DAT-8492]
  • [PR#2198] databasechangeloglock table creation not threadsafe [LB-2131]
  • [PR#2194] Correctly default strict setting and use global configuration [DAT-8547]
  • [PR#2189]Fix handling of relativeToChangelogFile with classpath: prefixed changelogs
  • [PR#2171]Fix minor typos in ColumnConfig.java documentation
  • [PR#2210]Remarks support for column in MariaDB LB-1429
  • [PR#2102]Handle GENERATED ALWAYS In postgresql While creating Table
  • [PR#2176]Incubyteco issue 1990
  • [PR#2216]Fix log message for version missmatch
  • [PR#2105]Look for jars in local ./liquibase_libs by
  • [PR#2215]Improve mysql loadData performance
  • [PR#2059]fix support for custom DB2Database implementations
  • [PR#2225]Use lowercase sys.synonyms in mssql.
  • [PR#2242]Prevent NPE in FileUtil if parent file does not exist [DAT-8275]
  • [PR#928]CORE-931: addColumn should support not-null constraint with an initia…
  • [PR#2235]Handle PK and FK dependencies correctly for Postgres [DAT-8256]
  • [PR#2268]remove unused log4j references
  • [PR#2073]Fix load relative file for LoadDataChange, CreateProcedureChange or CreateViewChange
  • [PR#2066]Directory with dot not recognized correctly when loading data (breaks migration from 3.x to 4.x)
  • [PR#2228]Handle the fact that FK names are not always unique.
  • [PR#2244]Recognize jdbc:edb urls as a distinct EnterpriseDB dialect
  • [PR#2081][2054] fix OSGI support (manifest, class loading)
  • [PR#2071]1054 add not null constraint causes data too long exception

New in LiquiBase 4.6.2 (Dec 2, 2021)

  • Notable Changes
  • Liquibase 4.6.2 introduces the multiple objects quality check that allows you to define and check the naming pattern for multiple types of objects rather than one type of object. For example, you do not want to have a dash in the table, column, and sequence names. With the multiple objects check, you can specify a pattern to check for dashes and choose tables, columns, and sequences as the objects to check. In version 4.6.2, the check is available for: Table, Column, Sequence. Note: For more information, see Multiple Objects Quality Check [DAT-8444]
  • The logging of SQL statements and execution output
  • Liquibase 4.6.2 includes the liquibase.sql.logLevel configuration option to control the level at which SQL is logged. The default value is FINE. You can run the --sql-log-level parameter with the --log-level <level> parameter in the CLI: liquibase --sql-log-level <FINE|INFO|SEVERE|WARNING|OFF> --log-level=<FINE|INFO|SEVERE|WARNING|OFF> --log-file=log.txt upda
  • You can also set the parameter as follows:
  • liquibase.sql.logLevel: <FINE|INFO|SEVERE|WARNING|OFF> in your liquibase.properties file
  • LIQUIBASE_SQL_LOG_LEVEL=<FINE|INFO|SEVERE|WARNING|OFF> as an environment variable [PR#1520] [nvoxland]
  • An additional liquibase_libs directory:
  • When you run Liquibase in the CLI, the executables generate a classpath with the .jar files from the LIQUIBASE_HOME and LIQUIBASE_HOME/lib directories. Liquibase 4.6.2 adds the ability to load an additional directory of liquibase_libs in the current working directory to the classpath. With the liquibase_libs directory located in the /lib directory, projects can have separate extensions, drivers, and versions specific to a project [PR#2015] [mcred]
  • The validate command in automation:
  • From now on, the exit code for the validate command running in automation shows 1 when there is an error. The PR fixes PR#1006. [PR#2185] [nvoxland] [christf]
  • Enhancements:
  • [PRO] Added the ability to configure the DDL_LOCK_TIMEOUT parameter for Oracle without SQL Plus and define the connection timeout. You can configure DDL_LOCK_TIMEOUT as follows:
  • liquibase.ddlLockTimeout: <value> in your liquibase.properties file
  • --ddl-lock-timeout=<value> as a CLI global parameter
  • LIQUIBASE_DDL_LOCK_TIMEOUT=<int> as an environment variable [DAT-7649]
  • Improved the output of the SqlUserDefinedPatternCheck quality check copy [DAT-8492]
  • [PR#1817] [stalbrecht] Added the MSSQLDatabase specific error evaluation when creating DATABASECHANGELOGLOCK table
  • [PR#2180] [nvoxland] [eldadko] Added support for MySQL function indexes. The PR fixes PR#1626.
  • [PR#928] [CORE-931] [RG9] Added support for the NOT NULL constraint with an initial default value in the addColumn Change Type
  • Fixes:
  • [PR#2173] [wwillard7800] [deci260] Fixed the issue with handling multi-column indexes during the JSON snapshot. The PR fixes PR#1260.
  • [PR#1793] [janjicandjelka8] Fixed the handling of the remarks attribute in a primary key column tag for MariaDB
  • [PR#1894] [KushnirykOleh] Fixed the time data type to be precise for PostgreSQL. The PR fixes PR#1774.
  • [PR#1970] [nvoxland] Fixed the handling of the addColumn Change Type in SQLite
  • [PR#1995] [szandany] Fixed the generate-changelog command to generate the NUMERIC[] data type for PostgreSQL correctly
  • [PR#1990] [JayWelborn] Fixed the SQL generated by the alterSequence Change Type to be compatible with the Oracle, PostgreSQL, MariaDB, and MSSQL databases
  • [PR#2020] [nvoxland] [dewa-actico] Fixed the handling of nested changelog preconditions. The PR fixes PR#1624.
  • Fixed the naming of the checks settings file shown as null if the file was corrupted [DAT-8553]
  • [PR#2021] [nvoxland] [zamani84] Fixed the issue with Liquibase escaping the backslash in values stored in objects. The PR fixes PR#1598.
  • [PR#2083] [jamey-clari] Enabled the update operations to continue if the DATABASECHANGELOGLOCK table already exists, which helps to serialize all processes following schema creation.
  • [PR#2167] [nvoxland] [obovsunivskyii] Fixed the --verbose flag used in the unexpected-changesets command. The PR fixes PR#1987.
  • [PR#2168] [nvoxland] [gilles-gosuin] Fixed the parsing logic for YAMLChangelogParser and changeLogId in a Map. The PR fixes PR#1988.
  • [PR#2102] [prakashseervi] Implemented the handling of the GENERATED ALWAYS AS clause while creating a table for PostgreSQL
  • [PR#2029] [Marcono1234] Fixed the LOCKGRANTED column to include time zone information in the DATABASECHANGELOGLOCK table
  • [PR#2059] [wardvijf] Fixed the support for custom DB2Database implementations. The PR fixes PR#2058.
  • [PR#2171] [logantracyo] Fixed typos in the ColumnConfig.java documentation
  • [PR#2189] [nvoxland] Fixed the classpath to include files with the relativeToChangelog=true parameter for Spring Boot
  • [PR#2216] [tkalmar] Fixed the log message for PostgreSQL versions
  • [PRO] Fixed the snapshot command failing against CockroachDB with the Liquibase Pro license key applied [DAT-8253]
  • Fixed the dependency order for a changelog file with the addPrimaryKey Change Type generated by the generate-changelog command for PostgreSQL [DAT-8256]
  • [PRO] Fixed the following environment variables LIQUIBASE_COMMAND_CHECKS_CONFIGURE_CHECKS_SETTINGS_FILE, LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SETTINGS_FILE, and LIQUIBASE_COMMAND_CHECKS_SHOW_CHECKS_SETTINGS_FILE to be detected when running the quality checks commands [DAT-8546]
  • Fixed the default value of the strict parameter. The default value is false. You can set the strict parameter as follows:
  • liquibase.strict=false|true in your liquibase.properties file
  • --strict=false|true as a CLI parameter
  • LIQUIBASE_STRICT=false|true as an environment variable [DAT-8547]
  • Fixed quality checks reporting only the first failure in a changeset to report all failures found [DAT-8583]
  • Fixed the Liquibase Cassandra extension failing when username and password are enabled [LB-2115]

New in LiquiBase 4.6.1 (Nov 5, 2021)

  • Liquibase 4.6.0 release has the wrong version of the Liquibase Pro XSD file. This release fixes that issue.

New in LiquiBase 4.6.0 (Nov 4, 2021)

  • Liquibase 4.6.0 release has the wrong version of the Liquibase Pro XSD file. This release fixes that issue.

New in LiquiBase 4.5.0 (Sep 27, 2021)

  • Implement checks enable/disable subcommands [DAT-7794]
  • Implement checks run subcommand for dynamic rules [DAT-7796]
  • Implement checks customize subcommand [DAT-7797]
  • Implement checks copy subcommand [DAT-7798]
  • Implement checks reset subcommand [DAT-7800]
  • Implement checks show subcommand for dynamic rules [DAT-7801]
  • Check for License & Limit gate [DAT-7802]
  • Implement checks delete subcommand [DAT-7803]
  • Initial write of the check-settings-config file [DAT-7858]
  • Add shortname to basic rules [DAT-7876]
  • Add ID to basic rules [DAT-7877]
  • Implement a Dynamic Rule [DAT-7883]
  • STATIC CHECK :: Changeset Must Have A Label [DAT-7924]
  • STATIC CHECK :: Changeset Must Have A Context [DAT-7925]
  • STATIC CHECK :: Changeset Must Have A Comment [DAT-7926]
  • STATIC CHECK :: Warn When "DROP TABLE" Detected [DAT-7928]
  • STATIC CHECK :: Warn When "DROP COLUMN" Detected [DAT-7930]
  • STATIC CHECK :: Warn When Data Type Modification is Detected [DAT-7934]
  • STATIC CHECK :: Warn when 'GRANT' Statement Detected [DAT-7953]
  • STATIC CHECK :: Warn when 'REVOKE' Statement Detected [DAT-7954]
  • DYNAMIC CHECK :: Warn when Tables have more than n columns [DAT-7983]
  • QC subcommand help lists incorrect environment variable format. [DAT-8005]
  • Change name of default settings file for checks to liquibase.checks-settings.conf [DAT-8017]
  • Core: Checks should be run in numeric order (ASC) [DAT-8040]
  • QC: BUG - [Y/n] defaults to n, but should default to [Y]es [DAT-8132]
  • QC: Update the priorities for 3 Liquibase checks (labels, contexts, comments) [DAT-8134]
  • Bugfixes:
  • Fail when creating a Scope with a null-parent #1354. #1377 Treehopper
  • Fixes Postgresql bit column support #1468 nderwin
  • Fix OSGiResourceAccessor failing due to javax.activation #1534 CMoH
  • fixed usage of computed values in prepared insert/update changes #1590 Plunts
  • Ensure that the root scope is initialized correctly regardless of whether a scope manager has been configured yet or not #1768 rudolfv
  • Fix UniqueConstraint snapshot query on db2z #1771 dileepan91
  • Update MissingTableChangeGenerator.java #1812 briar354
  • Get Set deleteCascade for serializer mapping #1837 smith-xyz
  • Add support for changeset ids and authors with spaces in formattedsql changelogs. #1845 jpz
  • More efficient XML resource loading #1860
  • Postgresql: Preserve existing search_path when setting the defaultSchemaName #1864
  • Fixed postgresql addPrimaryKey cluster handling #1880
  • CLI no longer reading defaultsFile from classpath #1893
  • Manage parent directory relative to changelog in IncludeAll #1968 Cubid
  • Improve synchronization of LockServiceFactory reset #1991
  • Fix createSequence for h2 when dataType is specified #1992
  • [PRO] Pro Enhancement Request: set 'splitStatements' to 'false' for Stored Logic changesets when generating a Formatted SQL changelog [DAT-7391]
  • [PRO] Allow users to indicate names and location of their spool files when using runWith:sqlplus [DAT-7580]
  • [PRO] Cannot update MariaDB expand based storage after first liquibase update [DAT-7879]
  • [PRO] Liquibase PRO generateChangeLog error on Postgresql functions that have long signatures containing any '()' characters [DAT-7894]

New in LiquiBase 4.4.3 (Aug 6, 2021)

  • Notable Changes:
  • In Liquibase 4.4.3, there are improvements to the FileSystemAlreadyExistsException output message. The original FileSystemNotFoundException warning was changed to be an info message that does not include logs of stack traces. If you are still seeing stack traces, please contact us. #1885 dertin
  • Additionally, we fixed bugs in SQL files: #1798:
  • The sqlFile and relativeToChangelogFile attributes fail when using the logicalFilePath attribute #1277 darkcamper
  • The wrong path received if relativeToChangelogFile=true and databaseChangeLog has logicalFilePath != PhisicalFilePath #1353 kezhevatov
  • Bugfixes:
  • Added a separate query for DB2 on AS400, which fixed the dropAll command on DB2 for iSeries #1412 wardvijf
  • Fixed the logicalFilePath attribute not being serialized #1471 tms-91
  • Fixed the SqlParser bug related to parsing UTF-8 valid symbols #1513 matteoturra
  • Fixed the invalid update SQL generated for HSQL database in InsertOrUpdateGeneratorHsql.java #1563 devorgpl
  • Added a validation error when the customChange Change Type has no name attribute #1592 danielthegray
  • Fixed the issue with Liquibase failing to create a DATABASECHANGELOGLOCK record and apply changesets into Firebird 3. isNumericBoolean now checks the Firebird3Database instance type and returns Boolean for Firebird 3. #1875 koushikd02
  • Fixed the issue with escaping question marks in PostgreSQL: #1877 juszczakn and goostleek
  • SQL changesets are transforming the PostgreSQL ? JSON operator into ??, causing function definitions using this operator to become invalid #1764
  • An error when processing a large Postgres SQL changeset #1507
  • Fixed the issue with ClassCastException in a standard lock service: java.time.LocalDateTime cannot be cast to java.util.Date #1878 jocmer-evooq and haidiiii
  • Added the MySQL reserved word CUBE to the list of Liquibase reserved columns for the schema migration to work. CUBE is a reserved word as of MySQL 8.0.1 #1515 jasonwjones
  • Added the ability to handle empty lines at the beginning of a formatted SQL #1713 smith-xyz
  • Fixed loading the CLOB data into PostgreSQL. Instead of loading the CLOB file name, PostgreSQL loads the content of the CLOB file. #1791 jidma
  • Changed the MD5SUM column value from RawSqlStatement to UpdateStatement #1602 biryukovpavel
  • Fixed synchronization in ChangeLogHistoryServiceFactory.java #1361 Olard
  • Fixed the changeset execution failure related to the DATICAL_SPERRORLOG table when using the runWith=sqlplus attribute and executing operations as a user with only SELECT, UPDATE and INSERT permissions [DAT-7410]
  • Combined Liquibase GitHub Action examples into the liquibase/liquibase-github-action-example repository [DAT-6679]
  • Enabled the dropAll report to work with a registered changelog with no extra arguments and send the information to Liquibase Hub [DAT-7554]
  • Renamed the tablespaceName parameter to liquibaseTablespaceName [DAT-7676]

New in LiquiBase 4.4.2 (Jul 22, 2021)

  • Liquibase Community Issues:
  • Changed NullPointerException to ChangeLogParseException for the output when there is a typo in a changeSet node #1593
  • Added the support method to DatabaseConnection #1784
  • Fixed the issue with handling serial and bigserial if liquibase.convertDataTypes=false #1883
  • Improved the ConfigurationValueProvider performance #1952
  • Added the ability to allow an empty string for the defaultValue attribute #1963
  • Reintroduced support for the -D arguments in the CLI #1943
  • Restored the updateTestingRollback command #1939
  • Added the Maven goal for unexpectedChangeSets #1972
  • Liquibase Pro Issues:
  • DAT-6799 Added the ability to handle special characters in procedures when using the generateChangeLog command.
  • DAT-7376 SQL*Plus: Fixed the issue with formatted SQL changesets and runwith:sqlplus being stopped unless Liquibase includes a quit statement.
  • DAT-7461 SQLPlus: Fixed the SQLPlus spool log issue.
  • Additional Issues:
  • DAT-6972 Extended the dropAll command with optional hubConnectionId and hubProjectId attributes. For more information, check our dropAll command documentation.
  • DAT-7294 Fixed nested properties and the substitution of variables in YML changelogs.
  • DAT-7388 Implemented the ability to use connectionjdbcurl when there is no project or connection ID with the dropAll command.
  • DAT-7036 Improved the Liquibase Pro License key messaging.
  • DAT-7489 Added the ability to handle a declined auto-registration when running the dropAll command.
  • DAT-7505 Fixed auto-registration issues.

New in LiquiBase 4.4.1 (Jul 9, 2021)

  • Bug fixes:
  • HubUpdater releases lock even though registration is skipped #1869
  • Only snapshot tables/columns in loadData #1861
  • [LB-704] fixed generating sequences for Postgres versions prior to 10 #1843
  • Fixes MySQL Snapshot/Generated ChangeLog output for table key constraints when multiple tables #1829
  • Postgres: Rollback of rename target fails due to malformed SQL.
  • Liquibase Hub registerChangeLog messaging fixesLiquibase Hub, Maven, and liquibase.properties file fixes
  • Using --liquibaseProLicenseKey is on the left side of the command
  • Update Liquibase installer adoptopenjdk from 11.0.10 to 11.0.11
  • [PRO] SQL Plus handles backslashes in changeset attributes' values
  • [PRO] SQL Plus passing arguments during runtime fixes
  • [PRO] SQL Plus handles Oracle proxy user setups
  • [PRO] SQL Plus improve temp file handling
  • [PRO] Fixes snapshot on MySQL Stored Logic Objects with Integer Types

New in LiquiBase 4.4.0 (Jun 10, 2021)

  • Key changes:
  • Refactor Configuration API
  • [PRO] Including native use of Environment variables
  • Refactor Command API
  • Rewrote CLI to use new library
  • including new command options and --help content
  • Bugfixes:
  • Fixes an issue with Maven logs and username password (#1859)
  • Fixes an issue with resolving properties files (#1723)
  • Fixes an issue with diffChangelog dependency order (#1722)
  • Fixes an issue with generating changlogs with DB2 on z/OS (#1506)
  • Fixes an issue with long table names in Postgres (#1483)
  • Fixes an issue with update flags for Postegres(#1213)
  • Fixes an issue with loadData and loadUpdateData(#964)

New in LiquiBase 4.3.5 Snapshot (Apr 30, 2021)

  • Liquibase Pro only:
  • Better error handling in runWith=sqlplus when user doesn't have create/drop table permissions

New in LiquiBase 4.3.4 (Apr 21, 2021)

  • Bugfixes:
  • DiffChangeLog/GenerateChangeLog produces invalid XML in 4.3.3 (#1803)
  • REVERTED FROM 4.3.3:
  • Fixes issue with diffChangeLog and addColumn --> addPrimaryKey ordering (#1722)

New in LiquiBase 4.3.3 (Apr 13, 2021)

  • Bugfixes:
  • Fixes an issue with changelogsync and Hub
  • Fixes an issue with dropAll and Postgres
  • Fixes an issue with diff and NullPointerException
  • Fixes an issue with NullPointerException and DateTimeType
  • Fixes issue with Maven resolving/using properties file
  • Fixes issue with diffChangeLog and addColumn --> addPrimaryKey ordering

New in LiquiBase 4.3.2 (Mar 24, 2021)

  • Enhancements:
  • Added new changelogSyncToTag command
  • Added new deactivatechangelog command for CLI and Maven users of Liquibase Hub. (Read the docs.)
  • Added ability to create Hub projects with parameters instead of only via prompts for CLI and Maven users
  • Bugfixes:
  • This release merges many community-contributed pull requests. Thanks to everyone who helps make the Liquibase community strong!
  • Only enable console prompting when explicitly enabled by the CLI #1711 #1689
  • Handle includeAll better in spring boot #1595 and #1436
  • Changed JRE bundled with installers to use the latest LTS version
  • Better handle dropAll on postgresql partitioned tables #1650
  • Fixed sample liquibase.sqlplus.conf file #1448 and #1416
  • Fixed loadData's usePreparedStatement attribute #1098
  • Send hub logs at the same log level as configured in the CLI

New in LiquiBase 4.3.1 (Feb 13, 2021)

  • Liquibase 4.3.1 is a quick bugfi release to address:
  • Fied handling of classpath*: in includeAll #1595
  • ClassCastEception on moving to mysql-connector-java 8.0.23 #1639
  • Passwords sent to Hub when using jTDS driver
  • ChangeEecListener cannot be used due to HubChangeEecListener #1651
  • RelativePathError when using includeAll tag and Spring Boot #1657
  • Liquibase 4.3.0 throws NullPointerEceptions without snakeyaml in the classpath #1682

New in LiquiBase 4.3.0 (Feb 10, 2021)

  • Bug fixes:
  • Fixed NullPointerException when an output writer is null #1625
  • Fixed filename + Id + author to be treated as unique in ValidatingVisitor.findChangeSet method #1622
  • Fixed EntityResolver to check the classpath even if the standard ResourceAccessor does not include it #1621
  • Fixed HistoryCommandTest to run on systems having a non-US default locale #1078
  • Added quotes around ${JAVA_PATH} in Liquibase shell script to avoid spaces in path issues #1062
  • Fixed the issue with automatic dropping of default values on MS SQL #1003
  • Allowed --changeset to have a space after -- in formatted sql files
  • Improvements:
  • Updated the snakeyaml driver (that is packaged with Liquibase installer files) to address the CVE-2017-18640 vulnerability #1608
  • Modified SetColumnRemarks support for MySQL #942
  • Implemented boolean data type support for DB2 LUW #966
  • Added deprecated LogFactory.getInstance() to make it easier for users who use the third party extension code to upgrade to 4.x #1642 and #1641
  • Included the existing dropPrimaryKey.dropIndex attribute in XSD #1629
  • Implemented auto-registration and operation report capabilities for Liquibase Hub
  • Certified MariaDB and Liquibase Pro functionality. Determined and documented MariaDB Oracle-compatible PL/SQL stored logic objects along with minimum GRANTs to leverage Liquibase Pro with MariaDB 10.4. See Liquibase Pro and MariaDB GRANT Best Practices.

New in LiquiBase 4.2.2 (Dec 10, 2020)

  • Liquibase 4.2.2 is a quick bugfix release to address:
  • Handle null statement objects coming from JdbcConnection objects #1576 which impacted the Liquibase-Hibernate extension

New in LiquiBase 4.2.1 (Dec 4, 2020)

  • Fixed invalid casting to JdbcConnection in CockroachDatabase #1536
  • Fixed missing unique constraints in snapshot #1477
  • Fixed unexpectedChangeSets command throwing a null pointer exception
  • If error occurs during generating SQL, Liquibase stops and does not send POST to Hub
  • Use ConcurrentHashMap in ExecutorService #1402
  • DropDefaultValue on postgresql now drops the default value vs. setting the default value to null #931
  • Updated banner to reference to hub.liquibase.com
  • [PRO] GenerateChangeLog on postgresql stored logic now hashes parameters in filenames instead of listing them all out
  • [PRO] Fix in postgresql check constraints snapshot
  • [HUB] Enhancement: The registerChangeLog command now supports YAML & JSON changelog files

New in LiquiBase 4.2.0 (Nov 13, 2020)

  • Improvements:
  • [PRO] certified support for MySQL 5.7 and 8.0, including enhanced support for stored logic
  • CockroachDB support (check out our CockroachDB tutorial)
  • New "allowUpdate" attribute on loadData columns #373
  • Bugfixes:
  • Improved Maven support for Liquibase Hub
  • Fix xsd, remove surplus space after validateForeignKey in 4.1.xsd / 4.2.xsd #1523
  • MySql 8.0 requires create and drop of temporary tables to run generateChangeLog #1510
  • Move banner.txt to new location #1496
  • Fix issue with loadUpdateData #1495
  • loadUpdateData broken for clob/text fields in 3.10.3 #1489
  • XML Export adds ',xxx' instead of ',' #1438
  • Precondition onFail="WARN" doesn't work properly #1389
  • Update Ant Tasks to use DatabaseFactory rather than create connection itself #1427

New in LiquiBase 4.1.1 (Oct 12, 2020)

  • Spring Boot: fixed many issues with how we find and handle changelog files and resources #1276
  • Fixed Ant logging #1286
  • Fixed diffChangeLog overwriting first changeset in formatted SQL #1097

New in LiquiBase 4.1.0 (Sep 28, 2020)

  • Liquibase 4.1 connects local Liquibase operations to Liquibase Hub
  • This release powers Liquibase Hub, now available in Beta. This free, secure SaaS portal provides status reporting, monitoring, and insights into your Liquibase database release automation. Learn more about Liquibase Hub Beta.
  • New Commands:
  • registerchangelog — This interactive CLI command will register the specified changelog to a Project in your Liquibase Hub organization. You can create a Project from the CLI, or choose one already created.
  • synchub — Synchronizes your local DATABASECHANGELOG table with its Liquibase Hub counterpart.
  • New Concepts:
  • Organizations — An Organization in Hub is the overall collection of all the elements used in the Liquibase Hub system. This includes Projects, changelogs and their changesets, connections, Operation reports, and your team members. A user can have more than one Organization and be in more than one Organization.
  • Projects — A Project in Liquibase Hub is the structured collection of the resources used by Liquibase Community or Liquibase Pro 4.1+. This includes changelogs, changesets, connections (e.g., JDBC URLs) and the commands run on these elements included in reports.
  • Operation reports — These reports include data sent from Liquibase Community or Liquibase Pro when it performs various commands on a registered changelog.
  • Users — A person who has an account in Liquibase Hub and owns one or more API Keys.
  • API Key — This key connects your Liquibase usage to specific Hub Organizations. A user can use one or more API keys in each organization. Users add the API key to their liquibase.properties or Maven POM.
  • Changes:
  • Added support for hub.liquibase.com to CLI and Maven integrations
  • New registerChangeLog command
  • New syncHub command
  • Added hubApiKey argument
  • Added hubConnectionId argument
  • CLI commands and arguments are now case insensitive

New in LiquiBase 3.10.2 (Jul 27, 2020)

  • Dependency cycle error during generateChangeLog with --diffTypes=tables,columns,data
  • liquibase maven:: unable to run tests on java > 8
  • Add Banner in log out put that directs users to online resources.
  • GH PR#980 - fixed invalid carriage return coming from oracle ojdbc8 12.2.0.1
  • GH PR#976 - Changes databasechangelog sql to use legacy mode
  • Add support for java.sql.Types.TIMESTAMP_WITH_TIMEZONE (CORE-3525)
  • GH PR#929 - Fix #CORE-3493 Inconsistent resolution of ChangeLogParameters in liqu…
  • GH PR#744 - Informix data type generation with Default Value cause
  • GH PR#1176 - Add MariaDB sequence support to the 3.10.x branch
  • GH PR#1177 - CORE-3643: fixed the 'shouldValidateX' methods in the Constraints
  • GH PR#1201 - H2 unknown reserved word

New in LiquiBase 3.10.0 (Jun 12, 2020)

  • SQL Plus Integration and the new "runWith" attribute:
  • There are occasions when the Liquibase in-built JDBC connector has trouble processing highly-specialized or variable-rich SQL, and a more purpose-built tool, like SQL Plus or other executor, is required.
  • For Liquibase Community and Pro users, we are introducing an optional changeset attribute, called runWith=<executor> which allows you to specify an “executor” to run your SQL. This new capability works with changesets in Formatted SQL, XML, JSON or YAML changelogs which call inline SQL or sqlFile tagged changesets. For Pro users, there is also a new liquibase.sqlplus.conf file, which lives alongside your liquibase.properties or POM file, where you can optionally specify some useful key-value pairs for configuring your executor.
  • As a Liquibase Pro user, employ the new SQLPlus integration by simply adding runWith=sqlplus to a changeset, and have SQL Plus in your PATH (or configure it in the accompanying liquibase.sqlplus.conf file). It’s now that easy to run your complex or specialized SQL changesets with SQL Plus.
  • Integrate your own executor:
  • As exciting, and true to open-source and open-extensibility, Liquibase Community users can now write their own classes to integrate their own executor. Say, for example, you need an encrypted JDBC tool, which you want to call as “ejdbc” from your changeset? Simply follow the included example so you can take advantage of this new feature:
  • Write and configure the classes to call your tool
  • Add runWith=ejdbc to select changesets to process them with your custom executor
  • New Auto-complete Bash Script:
  • In the Liquibase 3.10 release, you will also find a new bash script for MacOS / and Git Bash for Windows users called .liquibase-completion-mac.bash. This script adds some ease of use to the CLI, including auto-complete of commands and and auto-rollout of parameters. This is a single bash script that will not affect any core Liquibase code, and can live alongside the existing bash script which has and will continue to ship with Liquibase.

New in LiquiBase 3.9.0 (May 14, 2020)

  • Liquibase Pro can help you automate drift detection at scale in your database schemas with a new structured and machine readable diff output as json. This additional capability is an Pro extension to the existing community command "diff", and is invoked with a new --format option
  • $> liquibase diff --format=json
  • This outputs a JSON structured object listing the differences between two databases (as configured in your liquibase.properties or Maven POM file under the "url" and "referenceUrl" keys.) By default, the result is output to STDOUT, which provides you with maximum flexibility to pipe the result into other tools or a processing pipeline. You can also have the output delivered to a file, using the "--outputFile=<filename>" global parameter, as in
  • $> liquibase --outputFile=myfile.json diff --format=json
  • Whether you choose STDOUT or a collection of files, you can then process this data to generate reports, to trigger actions, from alerts to diffChangeLogs, to updates, or whatever make sense for how you use Liquibase.

New in LiquiBase 4.0.0 Beta 1 (Apr 21, 2020)

  • Improvements and Bugfixes:
  • In this major new version release, we have integrated dozens of community Pull Requests, addressing well over 100 bugs, in addition to the dozens of updates to the 3.8.x branches.

New in LiquiBase 3.8.9 (Apr 7, 2020)

  • For both Liquibase Community and Pro users, the following bugs were fixed in version 3.8.9:
  • Fixed an issue with how Liquibase handles SMALLINT on PostgreSQL when generating a changelog.
  • Improved generateChangeLog command to assume a diffTypes that includes "data" when the dataOutputDirectory parameter is used. Most users looking to export data as part of generateChangeLog can now simply use the dataOuputDirectory parameter without needing to specify diffTypes.
  • The --schemas parameter now works on either side of the snapshot command.
  • Enabled generatechangelog in PostgreSQL to correctly order create, function, and trigger statements.
  • Improved the use of dblink objects when using diff command.

New in LiquiBase 3.8.8 (Mar 20, 2020)

  • rollbackOneChangeSetSQL now works correctly with the Liquibase Maven plugin.
  • Liquibase Pro no longer generates procedural code with incorrect SQL syntax when running generateChangeLog against a MySQL database.

New in LiquiBase 3.8.7 (Feb 24, 2020)

  • Liquibase 3.8.7 Extends Targeted Rollbacks Capabilities for Liquibase Pro:
  • We are excited to announce with the release of Liquibase 3.8.7, Liquibase Pro users now have additional targeted rollback capabilities with two brand new commands! The creation of the rollbackOneUpdate command allows users to rollback their last update, or target any previous update with a --deploymentId parameter, and our new rollbackOneUpdateSQL command allows you view the SQL your rollbackOneUpdate command would produce prior to deploying it. That way, you can ensure you don't encounter any unintended consequences before rolling back.
  • Each one of these commands come with their own --help to give you friendly command-specific assistance when you need it most. Just type liquibase rollbackOneUpdate --help or liquibase rollbackOneUpdateSQL --help to find what you need.
  • To also help you navigate the Targeted Rollback waters, our fantastic engineers have created a brand new command available to both Liquibase Community and Pro users, we call this command history. The history command lists out all of your deploymentIds and all changeSets associated with each deploymentId so you can inspect a group of changes to ensure they have been applied to the database. Just type liquibase history into your command line to see it in action. Don't forget, you can also use a --outputFile parameter to write this information to a text file!
  • Bug Fixes:
  • Liquibase 3.8.7 also continues our initiative to make Liquibase bigger, badder, and even better than before. For both Liquibase Community and Liquibase Pro users, the following bugs were fixed in version 3.8.7:
  • --help was improved to include missing commands and correct information.
  • CompositeClassLoader does not implement getResource(String)

New in LiquiBase 3.8.6 (Feb 8, 2020)

  • Bug Fixes:
  • Liquibase 3.8.6 also continues our initiative to re-engage with our users by bringing new bug fixes to our Liquibase platform. For both Liquibase Community and Liquibase Pro users, the following bugs were fixed in version 3.8.6:
  • excludeObjects& includeObjects parameters now works correctly when running diff.
  • dataOutputDirectory parameter will now specify statement csv files appropriately.
  • Updated default MySql driver to com.mysql.cj.jdbc.Driver

New in LiquiBase 3.8.4 (Dec 20, 2019)

  • Fixed a 'Class not Found' exception error when using Java +9.
  • Fixed a 'Cannot Use Default Schema Name' error when users diff against an SQL Server snapshot file.
  • Fixed an 'Unexpected type: java.util.Date' error when using a defaultValueDate attribute in a YAML changelog.

New in LiquiBase 3.8.2 (Nov 26, 2019)

  • Liquibase Pro Only: Stored Logic Objects are now captured for Postgres and DB2, so users can reverse engineer database changes, and capture triggers, functions, procedures, and more using generateChangeLog, snapshot, diff, and diffChangeLog commands.
  • Liquibase Pro Only: Stored logic objects will now export into local directories and files.
  • BUG FIXES:
  • For both Liquibase Community and Liquibase Pro users, the following bugs were fixed in version 3.8.2:
  • Using generateChangeLog/diffChangeLog to generate formatted sql changelogs now works with Liquibase Pro's stored logic support
  • CDI-related classes moved back out of the main liquibase jar into an optional jar
  • Fixed issue with indexes backing foreign keys not always being caputured in diffChangeLog/generateChangeLog
  • Fixed issue with diffChangeLog/generateChangeLog generating primary keys when column order doesn't match the table's column order

New in LiquiBase 3.8.0 (Aug 20, 2019)

  • [CORE-3462] - Add new procedural database code change types for Liquibase Pro

New in LiquiBase 3.7.0 (Jul 17, 2019)

  • [CORE-3303] - Allow disabling shouldRun configuration via CDI integration
  • [CORE-3388] - DB2 LUW supports boolean data type column from version 11.1.1.1
  • [CORE-3400] - add "manifoldclass:" to list of skipped URL protocols in DefaultPackageScanClassResolver
  • [CORE-2377] - Using replaceIfExists with generates DROP statements
  • [CORE-2971] - Comments at end of statements are incorrectly parsed
  • [CORE-3124] - Indexes with DESC sorting are not created for PostgreSQL
  • [CORE-3159] - class cast exception when running command line
  • [CORE-3174] - Plugin does not create parent directory
  • [CORE-3211] - Firebird does not support RESTRICT option on Foreign Keys
  • [CORE-3251] - SQL Server Changesets Not Escaping Keywords
  • [CORE-3365] - PrimaryKeySnapshotGenerator throws NPE for SQLite
  • [CORE-3375] - addNotNullConstraint on h2 still requires (unused) columnDataType
  • [CORE-3386] - includeAll can't resolve relativeToChangelogFile path within a jar file
  • [CORE-3437] - MariaDB 10.3.4+ problem with add column PERIOD
  • [CORE-2235] - Support priority-based selection of Precondition implementation
  • [CORE-3205] - Change Log Parameters from Environment Variable

New in LiquiBase 3.6.3 (Jan 30, 2019)

  • [CORE-3100] - diff with uppercase reference database name
  • [CORE-3141] - ForeignKeySnapshotGenerator broken with recent SQL Server driver
  • [CORE-3192] - Error while including resources with includeAll directive
  • [CORE-3221] - Parsing valueDate Attribute of column Tag leads to precision loss and generating SQL for Oracle DB is broken
  • [CORE-3222] - Bin zip doesn't work due to missing slf4j-api JAR
  • [CORE-3231] - NPE in LogService.pushContext for MDCs that don't allow null values
  • [CORE-3242] - MS SQL Server 2008 support issue
  • [CORE-3256] - Verbose flag not getting interperated during 'status' command.
  • [CORE-3293] - Non global change log parameters are wrongly resolved in inner files
  • [CORE-3296] - CommandLineUtils::getBanner fails if manifest entries are missing
  • [CORE-3335] - Not possible to register/unregister SqlGenerators during execution of changeSet
  • [CORE-3348] - MSSQLDatabase class has a bug when connecting to SQL Server 2008 databases

New in LiquiBase 3.6.2 (Jul 4, 2018)

  • [CORE-3129] - PostgreSQL dropPrimaryKey with objectQuotingStrategy="QUOTE_ALL_OBJECTS"
  • [CORE-3206] - Liquibase 3.6.x is binary api-incompatible with 3.5.x
  • [CORE-3213] - Changelog with includeAll will not find child changelogs in multi-modules Spring Boot's executable JAR
  • [CORE-3229] - Oracle 11g doesn't support TIMESTAMP WITHOUT TIME ZONE data type

New in LiquiBase 3.6.1 (Apr 11, 2018)

  • [CORE-3200] - Wrong SQL generator is selected
  • [CORE-3201] - Command line missing required dependencies in 3.6.0 tarball
  • [CORE-3198] - Configuration option to prefer internal XSD usage

New in LiquiBase 3.6.0 (Apr 10, 2018)

  • [CORE-1609] - Command PromptCan't connect to database with a special character in pwd
  • [CORE-1852] - checksums depend on environment
  • [CORE-1888] - Sybase error for TINYINT, INT, BIGINTCan’t specify a length, scale or storage property on type ‘int/tinyint/bigint’.
  • [CORE-2008] - H2 Supports minValue and maxValue in Sequences since Version 1.3.175, but Liquibase does not
  • [CORE-2033] - NPE during Diff when case sensitive table missing
  • [CORE-2135] - liquibase corrupting UTF-8 changesets
  • [CORE-2162] - MSSQLMultiple inserts in sqlFile do not fail as expected
  • [CORE-2191] - Update on SQL Azure database fails due to unavailable sys.extended_properties
  • [CORE-2527] - Sybase create table fails because column name is too long
  • [CORE-2631] - dbdoc does not specify content type
  • [CORE-2739] - --delimiter parameter in liquibase --help
  • [CORE-2747] - CreateView / OracleKeyword REPLACE in view definition prohibits "or replace" in DDL statement
  • [CORE-2772] - primaryKeyExists check fails on Turkish locale for some chars
  • [CORE-2773] - DB2 AS/400 - generateChangeLog throwing Exception
  • [CORE-2796] - Handle TimeStamps with nano second precision correctly
  • [CORE-2797] - Determine the DB2 data server type correctly
  • [CORE-2820] - Unsupported ReorganizeTable for DB2 z/OS causes changelog validation to fail
  • [CORE-2821] - AddForeignKey statement generates incorrect SQL for DB2 z/OS
  • [CORE-2826] - indexExists precondition fails on AS400 + JDBCDatabaseSnapshot/Snapshot generator code is not coded generically?
  • [CORE-2843] - Sql wrong lexical analysis for string literals - escaped single quotes are misparsed
  • [CORE-2875] - UTF-8 character not understood
  • [CORE-2894] - Oracle snapshot not detecting custom datatypes in different schemas
  • [CORE-2909] - column remarks for mysql should be escaped
  • [CORE-2911] - OraclegenerateChangeLog on RAW types not including the size param
  • [CORE-2928] - Invalid snapshot of "duplicate" foreign keys
  • [CORE-2929] - Views with definitions that start with a comment are not captured correctly in generateChangeLog
  • [CORE-2940] - Do not print warning when DBA_RECYCLEBIN is not available
  • [CORE-2944] - outputDefaultSchema and outputDefaultCatalog command line parameters not respected
  • [CORE-2953] - update with valueSequenceNext and schema produces wrong SQL on oracle
  • [CORE-2965] - Custom Properties XML Changelog
  • [CORE-2992] - liquibase.util.grammar.TokenMgrErrorLexical error at line 1, column 71. Encountered"u00b4" (180), after ""
  • [CORE-2993] - createSequence with order denied on DB2
  • [CORE-3002] - SQLAnywhereRevert Unique Index failed
  • [CORE-3006] - Oracle CSV-Import"String index out of range-1"
  • [CORE-3009] - SQLAnywhereDrop Default Value failed
  • [CORE-3020] - No warning when included file doesn't exist (missing extension)
  • [CORE-3033] - typo in postgresql reserverd word
  • [CORE-3040] - onlyUpdate="true" flag generates empty statements for MySQL DB
  • [CORE-3046] - Fix faulty snakeyaml class-path entry after upgrade to 1.17
  • [CORE-3051] - SQLAnywhereDrop Table does not support CASCADE
  • [CORE-3054] - SQLAnywherejava-coredump on changeSet-SQL
  • [CORE-3055] - SQLAnywheresupports Sequences
  • [CORE-3063] - Integration tests failing on master
  • [CORE-3069] - Checksumline endings not standardized on windows if multiple lines
  • [CORE-3072] - Add usePreparedStatements="true|false" flag to loadData
  • [CORE-3076] - SUM is not reserved word for HsqlDB
  • [CORE-3099] - Non English environment; invalid tablename and column name can be generated because of toUpperCase toLowerCase method which is dependent to locale in java
  • [CORE-3101] - dropPrimaryKey TABLE_SCHEMA = 'null'
  • [CORE-3106] - SQLAnywhereDROP INDEX should use tablename
  • [CORE-3115] - Prefix space in column type causing the Unknown LiquibaseDataType with the latest release
  • [CORE-3117] - TIMESTAMP WITH TIME ZONE datatype is changed to TIMESTAMP in H2
  • [CORE-3119] - Maven failing to use driverPropertiesFile from Liquibase Properties File
  • [CORE-3135] - Column t1.tgconstrname does not exist
  • [CORE-3138] - SQLAnywhereAddAutoIncrement-Statement is wrong
  • [CORE-3140] - MSSQL2005 doesn't support built-in function original_db_name()
  • [CORE-3155] - CSV line content behind inline comment character doesn't contribute to checksum
  • [CORE-3162] - Diff problem with MSSQL case sensitive database
  • [CORE-3171] - LoadUpdateData doesn't work on SAP SQLAnywhere
  • [CORE-3180] - A DBMS-specific change set referencing a DBMS-specific rollback can't be parsed on a different DBMS
  • [CORE-2735] - Add possibility to test rollback with SpringLiquibase
  • [CORE-1225] - Add support for tablespace assigned to liquibase metadata tables
  • [CORE-2628] - defaultSchema parameter doesn't do Connection.setCatalog() for SpringLiquibase
  • [CORE-2842] - MSSQLSupport creating clustered unique constraints
  • [CORE-2891] - Liquibase "Command" objects can be extended and overridden
  • [CORE-2919] - Make all variants of Liquibase.listUnrunChangeSets public
  • [CORE-2952] - Use the clustered index if duplicate indexes are defined
  • [CORE-2955] - MSSQLCapture explicit null default values on snapshot and generate/diffChangeLog
  • [CORE-2970] - MSSQLSupport default value constraint names
  • [CORE-2977] - Generated primary key constraint name doesn't match Postgres default
  • [CORE-2985] - MSSQL Snapshot performance improvements
  • [CORE-3000] - Oracle JDBC batch for load_data
  • [CORE-3005] - Consideration of DB2/400 system views
  • [CORE-3017] - Add path attribute to createView
  • [CORE-3018] - Oraclesupport remarks on createView
  • [CORE-3045] - Support indexes on views
  • [CORE-3079] - Make includeObjects and excludeObjects affect which objects are snapshotted
  • [CORE-3094] - HSQLDB UUID support
  • [CORE-2920] - Using "//" as an endDelimiter stopped working 3.5.0

New in LiquiBase 3.5.5 (Feb 17, 2018)

  • [CORE-2851] - includeAll tag with a relative path duplicates the database changes with an absolute and with a relative changelog

New in LiquiBase 3.5.2 Pre-Release (Sep 22, 2016)

  • [CORE-1863] - PostgreSQL blob is mapped to bytea instead of oid
  • [CORE-2693] - Postgresql dropAll with serial columns fails because tables are dropped then sequences which no longer exist
  • [CORE-2698] - Oracle scripts with ending / are not actually getting executed even with splitStatements="false"
  • [CORE-2752] - Jtds has silent exceptions in db.getConnectionSchemaName
  • [CORE-2753] - defaultValueSequenceNext forgets schema name
  • [CORE-2754] - update table columns are not quoted when requested
  • [CORE-2756] - Null pointer exception from FileSystemResourceAccessor
  • [CORE-2757] - Databasechangelog ORDEREXECUTED and DEPLOYMENT_ID not updated when a changeSet is reran
  • [CORE-2758] - Debian package shouldn't symlink liquibase binary to absolute path
  • [CORE-2761] - 3.5.1: includeAll from the command line uses the absolute path as the changeSet path
  • [CORE-2763] - Postgresql schemas should default to lower case
  • [CORE-2765] - dbms in preConditions yaml changelog causes parsing error
  • [CORE-2770] - Can't read remarks from mssql 2000
  • [CORE-2774] - Can't read all columns from mssql2000
  • [CORE-2775] - Oracle Sequences not Generated in generateChangeLog after 3.4.1
  • [CORE-2778] - Sybase ASE: Incorrect syntax near the keyword 'ALTER'
  • [CORE-2780] - java.sql.SQLException: PooledConnection has already been closed
  • [CORE-2781] - DB2: custom-generated indexes for primary keys are not preserved in diff/generateChangeLog
  • [CORE-2784] - REGRESSION: Column creation of type 'TIMESTAMP WITHOUT TIMEZONE' fails on PostgreSQL
  • [CORE-2785] - Status command inconsistent with databasechangelog table
  • [CORE-2786] - Incorrect xml scheme for changlog file
  • [CORE-2787] - YAML Snapshot parser not handling strings that get stored as binary
  • [CORE-2789] - Postgres does not have a type "BINARY"
  • [CORE-2791] - Strip off trailing end delimiter in createProcedure on update, include on updateSql
  • [CORE-2793] - using property as startWith attribute
  • [CORE-2794] - Make CSV files created by Liquibase readable by Liquibase
  • [CORE-2795] - Fix a NullPointerException in DiffToChangeLog.sortMissingObjects
  • [CORE-2804] - defaultValueSequenceNext forgets schema name H2/PG/etc
  • [CORE-2805] - Multiple calls to generateChecksum() impacting deploy performance
  • [CORE-2806] - JsonSnapshotParser does not close stream after parsing
  • [CORE-2807] - Column data type "real" incorrectly translated to "double precision" for PostgreSQL, should be "real"
  • [CORE-2810] - defaultValueBoolean="false" generates wrong SQL for MySQL
  • [CORE-2811] - FileSystemResourceAccessor basepath/includeAll
  • [CORE-2813] - java.lang.NullPointerException when creating new ClassLoaderResourceAccessor();
  • [CORE-2814] - DB2: Quoting strategy not respected, objects are always saved as upper case
  • [CORE-2815] - Rollback by tag doesn't roll back tagDatabase changeSet
  • [CORE-2816] - Snapshot error when snapshotting an index or primary key against a case-sensitive column
  • [CORE-2818] - DEPLOYMENT_ID not created for Sybase in DATABASECHANGELOG, liquibase 3.5.1
  • [CORE-2819] - AbstractJdbcData getConnectionSchemaName() methods fails for Sybase
  • [CORE-2823] - DROP PRIMARY KEY fails for Sybase database update
  • [CORE-2827] - MSSQL: misc default value fixes
  • [CORE-2828] - MSSQL not capturing that primary key are non-clustered in generateChangeLog
  • [CORE-2830] - GenerateChangeLog does not handle tables with compound primary keys
  • [CORE-2831] - MySql BIT(1) defaultValue not snapshotted as Boolean
  • [CORE-2835] - GenerateChangeLog doesn't correctly "numeric DEFAULT '" " columns
  • [CORE-2836] - addAutoIncrement generates inconsistent sequence name for mixed-case table
  • [CORE-2837] - addAutoIncrement doesn't apply default schema in nextval call (PostgreSQL)
  • [CORE-2838] - createProcedure schema in the changelog is overwritten by defaultSchemaName
  • [CORE-2840] - MSSQL createProcedure for CREATE MERGE AS procedures need a trailing semicolon
  • [CORE-2843] - Sql wrong lexical analysis for string literals - escaped single quotes are misparsed
  • [CORE-2846] - DATABASECHANGELOG table query failed on postgres on first run
  • [CORE-2849] - Fail to execute with sequences
  • [CORE-2853] - Diff comparisions reporting differences between '0.0' and '0' in decimals
  • [CORE-2863] - Issue with Spring boot 1.4.0
  • [CORE-2864] - Regression for defaultSchemaName on MSSQL
  • [CORE-2867] - liquibase with MySQL raises exception "Table 'DATABASECHANGELOG' already exists" when using separate liquibase schema
  • [CORE-2868] - Adds schema/username to package and package body in oracle making them invalid
  • [CORE-2869] - Without a specified classpath, using includeAll with relativeToChangelogFile="true" fails
  • [CORE-2872] - "ON DELETE" not supported for FK constraints in Sybase
  • [CORE-2876] - Issue with Spring boot 1.4.0 Repackaged
  • [CORE-2878] - MSSQL setTableRemarks limited to 200 chars
  • [CORE-2881] - DiffChangeLog unnecessarily includes referenceTableCatalogName attribute if comparing Schema with different names
  • [CORE-2885] - AddColumn with defaultValueSequenceNext generated incorrect SQL for PostgreSQL
  • [CORE-2788] - handle VARBINARY type in Oracle and H2
  • [CORE-2800] - Add flag to diff command that suppresses reporting of column order difference in tables
  • [CORE-1984] - Support for non-split rollback statements in Formatted SQL
  • [CORE-2768] - Have the .deb and .rpm part of the release on github
  • [CORE-2782] - Update SnakeYAML version to 1.17
  • [CORE-2801] - Add method to Logger to allow closing of the output file stream
  • [CORE-2844] - Traverse parent changelogs for rollbacks
  • [CORE-2848] - Oracle: primary keys that use a pre-existing index drop the index along with the primary key on rollback
  • [CORE-2852] - Postgresql snapshots not correctly handling serial-backing sequences
  • [CORE-2857] - Support clustered primary keys in postgresql
  • [CORE-2873] - Postgresql custom types are snapshotted as having length 2147483647
  • [CORE-2874] - Ensure consistent charset encoding usage

New in LiquiBase 3.5.1 (Sep 22, 2016)

  • [CORE-2727] - NPE in DiffToReport.print() method
  • [CORE-2728] - Classloading broken in 3.5.0 with nested jars
  • [CORE-2729] - NullPointerException on Diff
  • [CORE-2731] - diff fails with NullPointerException
  • [CORE-2732] - releaseLock fails because ObjectQuotingStrategy is reset to LEGACY
  • [CORE-2733] - relativeToChangelogFile fails with FileSystemResourceAccessor
  • [CORE-2734] - Liquibase no longer handle newline correctly in endDelimiter when using sqlFile change
  • [CORE-2743] - CSV whitespace trimmed in 3.5.0
  • [CORE-2744] - changeset with loadUpdateData changes checksum in 3.5.0
  • [CORE-2745] - Performance degradation of sqlFile change
  • [CORE-2746] - Oracle: handle case when schema name contains a hyphen
  • [CORE-2750] - MSSQL catalog/database included all the time

New in LiquiBase 3.5.0 (Sep 22, 2016)

  • [CORE-155] - Default-context attribute in databaseChangeLog tag
  • [CORE-575] - foreign key constraint is generated with onUpdate and onDelete restrict
  • [CORE-910] - Lock is not released if nocount is on for sql server 2008
  • [CORE-1166] - Diff doesn't detect 'on delete cascade' statements
  • [CORE-1447] - Inconsistent line endings in updateSQL produced files
  • [CORE-1468] - Number / Numeric handling must differ between different database systems
  • [CORE-1679] - Changelog SQL routines are partially aware of Database quoting strategy
  • [CORE-1690] - OSGiPackageScanClassResolver does not search extensions in Fragment bundles
  • [CORE-1836] - Oracle Integer mapping
  • [CORE-1839] - H2 multicolumn unique constraints
  • [CORE-1883] - Performance issue with large datamodels
  • [CORE-1887] - Including the same ChangeSet twice causes ValidationFailedException
  • [CORE-1897] - stripComments from SQL is trimming quoted string
  • [CORE-1935] - Formatted SQL generateChangeLog failed
  • [CORE-1966] - Invalid object name 'INFORMATION_SCHEMA.SEQUENCES' when running generateChangeLog with SQL Azure
  • [CORE-1985] - constraints tag is missing referencedTableSchemaName
  • [CORE-2024] - Move SDK to its own module
  • [CORE-2056] - generateChangeLog generates too many 'constraints'
  • [CORE-2059] - escapeObjectName has no respect for quotingStrategy QUOTE_ONLY_RESERVED_WORDS on Postgres
  • [CORE-2184] - diff doesn't write correct Changesets for foreign key constraints with ON DELETE CASCADE
  • [CORE-2211] - Liquibase tries to execute commented lines in custom SQL file
  • [CORE-2213] - Liquibase does not support comments in a line after the semicolon
  • [CORE-2333] - loadData fails with quoted string containing a comma
  • [CORE-2376] - LiquibaseCatalogName in commandLine not working correctly
  • [CORE-2438] - DeleteGenerator does not handle parameter names and values with $ or properly
  • [CORE-2456] - includeObjects/excludeObjects not work for UniqueConstraint
  • [CORE-2474] - dropFirst does not drop objects in not default schemas on Postgres 9+ using sql format with multiple schemas
  • [CORE-2483] - Liquibase does not delete unzip directories from temporary directory
  • [CORE-2501] - Derby sequenceCurrentValue Incorrect SQL
  • [CORE-2502] - Handle single-tag tag on diffChangeLog
  • [CORE-2504] - NumberFormatException while checking precondition
  • [CORE-2508] - GlobalConfiguration liquibase.should.run alias is incorrect
  • [CORE-2512] - Both defautValueComputed and defaultValue included in addColumn diffChangeLog outputs if value is a computed value
  • [CORE-2513] - DiffChangeLog fixing changed indexes misses "unique" attribute
  • [CORE-2514] - bad Maven documentation for outputDefaultCatalog and outputDefaultSchema
  • [CORE-2517] - Foreign key snapshot improvements for DB2
  • [CORE-2518] - DB2: snapshot sees DATE types as TIMESTAMP
  • [CORE-2520] - Spurious warning with includeAll: file is not a recognized file type
  • [CORE-2521] - addAutoIncrement on Postgres generates invalid SQL when specific schema is used
  • [CORE-2522] - Derby: support for findForeignKeyConstraints
  • [CORE-2523] - H2: use "REAL" as datatype for "FLOAT"
  • [CORE-2524] - MSSQL: need to escape default value constraint names
  • [CORE-2525] - Error on dropping sequence
  • [CORE-2526] - Oracle 12: TIMESTAMP(3) not handled
  • [CORE-2528] - Oracle: improve unique constraint snapshot query performance
  • [CORE-2529] - MSSQL auto_increment numeric is 1 smaller in generateChangeLog
  • [CORE-2531] - Wrong type mapping of BINARY type in MySQL, H2, HSQLDB and Postgresql
  • [CORE-2533] - Poor runtime performance
  • [CORE-2538] - regenerate maven documentation for liqubase on website
  • [CORE-2545] - MSSQL: createProcedure fails if replaceIfExists=true and body uses "create proc" rather than "create procedure"
  • [CORE-2547] - liquibase.database.core.DB2Database - Improper Resource Shutdown or Release
  • [CORE-2548] - primaryKeyTablespace is ignored in PostgreSQL
  • [CORE-2550] - Proper handling BINARY type in MySQL and H2
  • [CORE-2552] - Oracle performance: fetch view definition along with original view to reduce the number of needed queries
  • [CORE-2553] - DB2: add ability to disable automatic reorg statements
  • [CORE-2556] - Cannot execute update code including quoted strings containing semicolons
  • [CORE-2558] - includeAll incorrectly sorting by including WEB-INF/classes when running in an ear
  • [CORE-2561] - Add "cycle" attribute to alterSequence
  • [CORE-2562] - MSSQL: Snapshot errors if table names have single quote marks in them
  • [CORE-2563] - DiffChangeLog that adds columns does not preserve column order
  • [CORE-2565] - Escaping of the sequence names with schema generates invalid statements for Oracle DB
  • [CORE-2581] - mysql update emits incorrect sql for BIT(1) when default specified
  • [CORE-2587] - Validation not performed before rollback
  • [CORE-2591] - autoincrement problem with ORA 12c + COMPATIBLE param to 11
  • [CORE-2595] - DefaultPackageScanClassResolver fails if "fat" jar has dirs and files with same name
  • [CORE-2599] - generateChangelog produces incorrect values for binary type
  • [CORE-2601] - ORDER keyword isn't escaped for Oracle
  • [CORE-2602] - StackOverflowError generating snapshot
  • [CORE-2604] - PostgreSQL datatype bit(n) column gives BOOLEAN(n) type for CreateTableChange genearated sql statement
  • [CORE-2605] - addColumn with multiple columns, does not create the constraints
  • [CORE-2606] - PostgreSQL : Table creation with datatype smallserial fails.
  • [CORE-2609] - Liquibase command line fails when using JTDS driver with SSO
  • [CORE-2611] - Sybase ASE generated table name is wrong. Roll back CORE-2447
  • [CORE-2615] - Multi-schema snapshot bugfixes
  • [CORE-2623] - Oracle: primary keys on tables recovered from recyclebin are not properly snapshotted
  • [CORE-2624] - MSSQL: better support for user defined types
  • [CORE-2625] - Diff: should not be case sensitive in column default value functions
  • [CORE-2629] - SQL syntax doesn't allow commenting indepenrent parts.
  • [CORE-2632] - Postgres index drop needs schema
  • [CORE-2635] - Applied changeset not detected
  • [CORE-2636] - includeAll uses full file path
  • [CORE-2637] - Creating column with tinyint(1) instead created as default tinyint
  • [CORE-2641] - runOnChange change set runs every time even if there wasn't changed
  • [CORE-2642] - Xsd files are not resolved from classpath when resolving from resourceAccessor fails.
  • [CORE-2643] - loadData
  • [CORE-2645] - Rollback referencing a change set in current child file cannot be parsed
  • [CORE-2653] - Liquibase show difference for some UniqueConstraint and Views in SQL SERVER databases but Actually there is NO difference when i compare the SQL scripts manually
  • [CORE-2660] - Multiple contexts not recognized in formatted SQL when using AND
  • [CORE-2662] - NumberFormatException with default values of type 'real' in postgresql
  • [CORE-2663] - New MySQL 5.7.x reserved keywords are not being escaped
  • [CORE-2664] - createChangeLog has incorrect nesting of constraints in YAML format
  • [CORE-2666] - InsertSetGenerator hard-codes the InsertGenerator
  • [CORE-2669] - Impossible to extend BaseLiquibaseTask in a non-deprecated way
  • [CORE-2670] - Impossible to create table on mssql with remarks containing apostrophes
  • [CORE-2671] - oracle timestamps with time zone
  • [CORE-2672] - createSequence with order produces invalid statement on postgresql
  • [CORE-2673] - includeAll relativeToChangelogFile doesn't work for FileSystemResourceAccessor
  • [CORE-2674] - LoadUpdateData with onlyUpdate="true" generates invalid statements for Oracle DB
  • [CORE-2677] - Dropping a postgres index fails
  • [CORE-2679] - Hibernate diffChangeLog NullPointerException @ MissingPrimaryKeyChangeGenerator.fixMissing(MissingPrimaryKeyChangeGenerator.java:76)
  • [CORE-2680] - Generating a futureRollbackSql when using "classpath:" prefix doesn't recognise any of the ran change sets.
  • [CORE-2681] - H2 (automatic mixed mode): createTable: columns remarks ignored
  • [CORE-2683] - dropAll dropping sequences that have been dropped via earlier cascade
  • [CORE-2684] - Context is ignored with runOnChange and including file (sqlFile/loadUpdateData)
  • [CORE-2686] - StandardChangeLogHistoryService.hasDatabaseChangeLogTable value is cached too aggressively
  • [CORE-2687] -