Releases: liquibase/liquibase
v4.15.0
New and Notable Capability - liquibase flow
command
liquibase flow
and new flow-file (DAT-10419) by in #2946- The
liquibase 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 mario@liquibase.com to request a license key. Learn more at http://docs.liquibase.com/flow.
- The
Enhancements
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
Updates
Security Updates
No security updates needed in this release.
JDBC Driver and Third-Party Library Updates
- Upgraded snowflake-jdbc from 3.13.20 to 3.13.21 by @dependabot in #3061
OWASP Dependency Check: Reported Vulnerabilities
- None
New Contributors
- @andrewhj made their first contribution in #1971
- @lzxgyh made their first contribution in #3063
- @kazz62 made their first contribution in #2239
- @ctgnz made their first contribution in #2892
- @michaelmatthiaskern made their first contribution in #2712
- @martinspielmann made their first contribution in #3093
Full Changelog: v4.14.0...v4.15.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
File Descriptions
- Liquibase CLI -- Includes open source + commercial functionality
- liquibase-x.y.z.tar.gz -- Archive in tar.gz format
- liquibase-x.y.z.zip -- Archive in zip format
- liquibase-windows-x64-installer-x.y.z.exe -- Installer for Windows
- liquibase-macos-installer-x.y.z.dmg -- Installer for MacOS
- Primary Libraries - For embedding in other software
- liquibase-core-x.y.z.jar – Base Liquibase library (open source)
- liquibase-commerical-x.y.z.jar – Additional commercial functionality
- liquibase-additional-x.y.z.zip – Contains additional, less commonly used files
- Additional libraries such as liquibase-maven-plugin.jar and liquibase-cdi.jar
- Javadocs for all the libraries
- Source archives for all the open source libraries
- ASC/MD5/SHA1 verification hashes for all files
v4.14.0
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
Security Updates
No security updates needed in this release.
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
OWASP Dependency Check: Reported Vulnerabilities
- None
New Contributors
- @hessjcg made their first contribution in #3033
- @mehrabisajad made their first contribution in #3059
- @tozogabee made their first contribution in #3026
- @mide25 made their first contribution in #783
- @zorglube made their first contribution in #2990
Full Changelog: v4.13.0...v4.14.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
File Descriptions
- Liquibase CLI -- Includes open source + commercial functionality
- liquibase-x.y.z.tar.gz -- Archive in tar.gz format
- liquibase-x.y.z.zip -- Archive in zip format
- liquibase-windows-x64-installer-x.y.z.exe -- Installer for Windows
- liquibase-macos-installer-x.y.z.dmg -- Installer for MacOS
- Primary Libraries - For embedding in other software
- liquibase-core-x.y.z.jar – Base Liquibase library (open source)
- liquibase-commerical-x.y.z.jar – Additional commercial functionality
- liquibase-additional-x.y.z.zip – Contains additional, less commonly used files
- Additional libraries such as liquibase-maven-plugin.jar and liquibase-cdi.jar
- Javadocs for all the libraries
- Source archives for all the open source libraries
- ASC/MD5/SHA1 verification hashes for all files
v4.13.0
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 Contributors
- @marcsowen made their first contribution in #2932
- @LonwoLonwo made their first contribution in #1906
Full Changelog: v4.12.0...v4.13.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
v4.12.0
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 mario@liquibase.com to request a license key.
The Quality Checks commands have moved from limited availability in Liquibase Open Source to complete unlimited access only in Liquibase Pro. If you were using the Liquibase Open Source version, which was limited to five checks, you can test out the unlimited version with a free Liquibase Pro trial.
* make all QCs work only for Pro users (Pro PR 496) (DAT-10098)
- 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 usehttp://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.jar[https://github.com/advisories/GHSA-wm64-883p-84j3] (https://nvd.nist.gov/vuln/detail/CVE-2018-14335)
New Contributors
- @MichaelCkr made their first contribution in #2595
- @akatiyar made their first contribution in #2616
- @Cliftonz made their first contribution in #2785
- @reallyinsane made their first contribution in #2524
- @MartinRied made their first contribution in #2781
- @dwieland made their first contribution in #2656
- @mngsgoncalves made their first contribution in #2277
- @kamalnigam made their first contribution in #2837
- @bendem made their first contribution in #2567
- @xjodoin made their first contribution in #605
- @abrackx made their first contribution in #2934
- @coenvk made their first contribution in #2600
Full Changelog: v4.11.0...v4.12.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
v4.11.0
Liquibase 4.11 release
Please report any issues to https://github.com/liquibase/liquibase/issues.
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
andinternal/lib
. You should manually delete any files inlib
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 thelib
files take priority over what is ininternal/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 newinternal/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 newinternal/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
Security Updates
- No security updates needed in this release
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 Contributors
- @nikosmoum made their first contribution in #2630
- @DartVerder made their first contribution in #2725
- @erik-meuwese-topicus made their first contribution in #2758
- @joserebelo made their first contribution in #2565
Full Changelog: v4.10.0...v4.11.0
v4.10.0
Liquibase 4.10 release
Please report any issues to https://github.com/liquibase/liquibase/issues.
Breaking Change
Upgraded mssql driver to 10.2.0 by @nvoxland in #2790
End User Impact: The driver changed the encryption default from "false" to "true" between 8.x and 10.x. If you have a self-signed certificate in your database, you must do one of the following: add encrypt=false
; add trustServerCertificate=true
; or add the server certificate to the java trusted certificate list. For production systems, Liquibase recommends against using self-signed certificates without adding the server certificate to the Java keystore. For more information on installing the trusted certificate, see https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/manage-certificates?view=sql-server-ver15
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:postgresql@42.3.2
- Fixed in org.postgresql:postgresql@42.3.3
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
andchecks.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 Contributors
- @kataggart made their first contribution in #2577
- @feltonma91 made their first contribution in #2636
Full Changelog: v4.9.1...v4.10.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
Contribute code
Make doc updates
Help by asking and answering questions
Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
v4.9.1
Liquibase 4.9.1 patch release
Please report any issues to https://github.com/liquibase/liquibase/issues.
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]
Fixes security issue in which sqlcmd outputs userid and password when using loglevel=INFO [DAT-9571]
Full Changelog: v4.9.0...v4.9.1
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
- Contribute code
- Make doc updates
- Help by asking and answering questions
- Set up a chat with the Product team
Thanks to everyone who helps make the Liquibase community strong!
v4.9.0
Liquibase 4.9.0 release
Please report any issues to https://github.com/liquibase/liquibase/issues.
Notable Changes
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. - [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 yourclasspath
, Liquibase will no longer automatically download and use the XSD from the internet for security reasons. The default value forsecureParsing
istrue
, but you can set it tofalse
in any of the Liquibase configuration locations. For more information, see XSD support. - [PR#2529] [Krzysztof Sierszeń] [LB-1781] The
uniqueConstraintExists
precondition to check for the existence of unique constraints before running the update. You can check the constraint by constraint name or columns:
<preConditions>
<uniqueConstraintExists constraintName="uq_constraint_name" tableName="test_table"/>
</preConditions>
<preConditions>
<uniqueConstraintExists tableName="test_table" columnNames="first_name, last_name"/>
</preConditions>
- [PR#2339] [nvoxland] [Toukite] The support for running the Liquibase Servlet listener in application servers built on the Jakarta Servlet specification and not the Java Servlet specification. To use the new listener, specify the following tag:
<listener>
<listener-class>liquibase.integration.servlet.LiquibaseJakartaServletListener</listener-class>
</listener>
The PR fixes issue #2298.
Enhancements
- [PR#2434] [Balázs Dési] Added the Maven
validate
goal tomaven-liquibase-plugin
to provide access to the existing Liquibasevalidate
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 thesnapshot
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 thesplitStatements
attribute works for your environment when generating formatted SQL changelogs [DAT-9327] - Added the
StripComments
attribute for theSQLUserDefinedPatternCheck
quality check to choose the code that theSQLUserDefinedPatternCheck
searches, including the option for the commented code. TheStripComments
attribute strips comments from SQL before searching for the string. The default value isN
(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 ofreferenceDatabase
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 isfalse
in theloadUpdateData
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
, andBIGSERIAL
for versions earlier than 21.2GENERATED 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 forendDelimiter
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
Full Changelog: v4.8.0...v4.9.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
- Contribute code
- Make doc updates
- Help by asking and answering questions
- Set up a chat with the Product team
Our first-time contributors
- Balázs Dési
- Inane Mohammed
- Clarence Dimitri CHARLES
- kavya-shastri
- Emiliano Capoccia
- Saucistophe
- mkobylarz
- Krzysztof Sierszeń
- Jenson3210
Thanks to everyone who helps make the Liquibase community strong!
v4.8.0
Liquibase 4.8.0 release
Please report any issues to https://github.com/liquibase/liquibase/issues.
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 theliquibase.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
(from42.2.12
to42.3.2
) andh2
(from2.0.206
to2.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 theLIQUIBASE_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 noclass
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 theClassLoaderResourceAccessor
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
anddiff
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 theliquibase-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 thecreateTable
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 thecreateSequence
oralterSequence
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.
Full Changelog: v4.7.1...v4.8.0
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to making it stronger:
- Contribute code
- Make doc updates
- Help by asking and answering questions
- Set up a chat with the Product team
Our first-time contributors
- Anatoly S
- wziebicki
- msimko81
- Dries Samyn
- Mirko Dostmann
- maxencelaurent
- urvanov-ru
- nickshoe
- Joseph Cen
Thanks to everyone who helps make the Liquibase community strong!
v4.7.1
Liquibase 4.7.1 is a patch release
Please report any issues to https://github.com/liquibase/liquibase/issues
Known Issues
In version 4.7.0, users that have "edb" in connection URLs but are not using EnterpriseDB experienced errors that caused Liquibase to misinterpret the database dialect. This patch release resolves this issue along with several others.
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 theliquibase.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]
- CLI:
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 ofEnterpriseDBDatabase
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 sameObjectNameMustMatch
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 thecreateSequence
andalterSequence
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 generatedsetColumnRemarks
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]
Full Changelog: v4.7.0...v4.7.1
Get Certified
Learn all the Liquibase fundamentals from free online courses by Liquibase experts and see how to apply them in the real world at https://learn.liquibase.com/.
Read the Documentation
Please check out and contribute to the continually improving docs, now at https://docs.liquibase.com/.
Meet the Community
Our community has built a lot. From extensions to integrations, you’ve helped make Liquibase the amazing open source project that it is today. Keep contributing to make it stronger:
- Contribute code
- Make doc updates
- Help by asking and answering questions
- Set up a chat with the Product team