Liquibase 4.18.0 Release Notes

Liquibase v4.18.0 is a major release.

See GitHub formatted release notes for more information. Full changelog: 4.17.2–4.18.0 (December 6, 2022)

Breaking Changes

  • Use PathHandler for writing log files, which allows using S3 and other extensions (DAT-11515) by @abrackx in #3438

Notable Changes

[PRO] Hashicorp Vault extension and Liquibase Pro

Use together for increased security and convenience of centralized properties

  • Security: Vaults offer much greater security than defaults files or environment variables
  • Centralization: Secure your database credentials, Liquibase 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 for update command

  • When set to true will attempt to roll back a failed update operation.
  • Note: changesets marked failOnError=false, do not count as error, and so do not run rollback-on-error

[OSS] Liquibase Environment variables

Enhancements

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 changelog. 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 Contributors

  • @gzsombor made their first contribution in #3301
  • @carlos940513 made their first contribution in #665
  • @rozenshteyn made their first contribution in #3398
  • @musttafayildirim made their first contribution in #3316
  • @berryh made their first contribution in #898
  • @Spindl made their first contribution in #2155
  • @arturobernalg made their first contribution in #3375
  • @Domm98CZ made their first contribution in #3456