Releases: liquibase/liquibase
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
TableColumnLimitcheck to work with formatted SQL changelogs [DAT-8531] - Implemented the
--auto-updatequality check parameter, which allows automatic backup and updating of theliquibase.check-settings.conffile when new quality checks are available. [DAT-8752]- CLI:
--auto-update=[on|off] liquibase.propertiesfile: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-pluginlogging configuration as deprecated [LB-2183] - [PR#2217] [Wesley Willard] [Marcono1234] Made lock granted time consistent with date executed time. Modified the
listLocksoutput 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 projectcommand if you miss a supported argument in any command [DAT-8641]
Fixes
- [PR#2364] [Nathan Voxland] [M-Koers] Made
EnterpriseDBDatabasedetection less broad. The implementation ofEnterpriseDBDatabasepicked 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, SEQUENCEspecified in the sameObjectNameMustMatchrule to find all matches [DAT-8716] - Fixed the
runWith=changeLogPropertyattribute not working in a formatted SQL changelog [DAT-4793] - [PR#2270] [Nathan Voxland] [Michael Kroll] Fixed the handling of the
cacheSizeattribute in thecreateSequenceandalterSequenceChange Types for MariaDB. The PR fixes PR#2147. [LB-2191] - [PR#2269] [Nathan Voxland] [Tsvi Zandany] Fixed the handling of the
tag-existscommand 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
columnDataTypeattribute for the generatedsetColumnRemarkschangesets 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
Our first-time contributors
Thanks to everyone who helps make the Liquibase community strong!
v4.7.0
Liquibase 4.7.0 release
Please report any issues to https://github.com/liquibase/liquibase/issues
Breaking Changes
- [PR#2228] [Nathan Voxland] Handle the fact that FK names are not always unique. Fixes PR#2227. When using the foreignKeyConstraintExists precondition, you must now specify foreignKeyTableName. See also: PR#2565 fixing #2389. in 4.11.0.
Notable Changes
Liquibase 4.7.0 introduces the init command with the project and start-h2 subcommands.
- The
init projectsubcommand helps to set configuration files for using Liquibase or, if you already use Liquibase, create new project files with minimal input. [DAT-8640] - The
init start-h2subcommand helps to start the included in-memory H2 database. The subcommand needs to be run in a new terminal window. [DAT-8945]
Note: For more information and examples of using init project, see init project.
Additionally, we have updated the Liquibase Getting Started tutorials, sample changelog files, and the example H2 database in the installation package. From now on, you can use sample SQL, XML, JSON, and YAML changelog files with the corresponding changesets and the latest version of H2. [LB-2177] [LB-2174]
Note: Check Liquibase Getting Started to see more details.
Enhancements
- [PRO] Improved the output of the
rollback-one-updatecommand [DAT-7590] - [PR#2244] [Tsvi Zandany] Enabled the use of the
jdbc:edbURL for Liquibase to recognize EnterpriseDB [LB-2185] - [PR#2225] [Nathan Voxland] [Konstantin] Enabled the use of lowercase
sys.synonymsobjects for thegenerate-changeloganddiff-changelogcommands in Liquibase and SQL Server. The PR fixes PR#2044. [LB-2175] - Added DB2 on z/OS database type and Java classes for Liquibase [DAT-8575]
- Upgraded H2 to the later version – 2.0.206
- [PR#2197] [Andrii Tytarchuk] Added optional SQL Plus properties to the
liquibase.sqlplus.conffile and put the file in theexamples/sqlfolder [DAT-7618]- liquibase.sqlplus.args
- liquibase.sqlplus.keep.temp.path
- liquibase.sqlplus.keep.temp.name
- [PR#2215] [Nathan Voxland] Improved MySQL
loadDataperformance [LB-2173]
Fixes
- Fixed the
generateChangeLogwrong dependency order: theaddPrimaryKeyChange 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
loadDataChange Type to recognize CSV files when loading data with the path that contains a dot character ('.') [LB-2178] - [PR#2071] [Nicolas Humblot] [Philipp] Fixed the
addNotNullConstraintChange Type causing the "Data too long" error message. The PR fixes PR#1054. [LB-2187] - [PR#2073] [smainz] Fixed the
relativeToChangelogFileattribute forloadData,createProcedure, andcreateViewChange Types [LB-2179] - [PR#2228] [Nathan Voxland] Updated the logic of the foreign key names that are not always unique [LB-2176]
- [PR#2081] [Jakub Herkel] Fixed OSGI support (manifest and class loading) [LB-2184]
- [PR#2192] [Andrii Tytarchuk] Fixed
COLUMN_SIZEfor the PostgreSQLNUMERIC[]datatype
Full Changelog: v4.6.2...v4.7.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 make 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
Thanks to everyone who helps make the Liquibase community strong!
v4.6.2
Liquibase 4.6.2 is a patch release
Please report any issues to https://github.com/liquibase/liquibase/issues
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 update --changelog-file=<changelog>
You can also set the parameter as follows:
liquibase.sql.logLevel: <FINE|INFO|SEVERE|WARNING|OFF>in yourliquibase.propertiesfileLIQUIBASE_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_TIMEOUTparameter for Oracle without SQL Plus and define the connection timeout. You can configureDDL_LOCK_TIMEOUTas follows:liquibase.ddlLockTimeout: <value>in yourliquibase.propertiesfile--ddl-lock-timeout=<value>as a CLI global parameterLIQUIBASE_DDL_LOCK_TIMEOUT=<int>as an environment variable [DAT-7649]
- Improved the output of the
SqlUserDefinedPatternCheckquality check copy [DAT-8492] - [PR#1817] [stalbrecht] Added the
MSSQLDatabasespecific 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 NULLconstraint with an initial default value in theaddColumnChange 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
remarksattribute 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
addColumnChange Type in SQLite - [PR#1995] [szandany] Fixed the
generate-changelogcommand to generate theNUMERIC[]data type for PostgreSQL correctly - [PR#1990] [JayWelborn] Fixed the SQL generated by the
alterSequenceChange 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
--verboseflag used in theunexpected-changesetscommand. The PR fixes PR#1987. - [PR#2168] [nvoxland] [gilles-gosuin] Fixed the parsing logic for
YAMLChangelogParserandchangeLogIdin a Map. The PR fixes PR#1988. - [PR#2102] [prakashseervi] Implemented the handling of the
GENERATED ALWAYS ASclause while creating a table for PostgreSQL - [PR#2029] [Marcono1234] Fixed the
LOCKGRANTEDcolumn to include time zone information in the DATABASECHANGELOGLOCK table - [PR#2059] [wardvijf] Fixed the support for custom
DB2Databaseimplementations. The PR fixes PR#2058. - [PR#2171] [logantracyo] Fixed typos in the
ColumnConfig.javadocumentation - [PR#2189] [nvoxland] Fixed the classpath to include files with the
relativeToChangelog=trueparameter for Spring Boot - [PR#2216] [tkalmar] Fixed the log message for PostgreSQL versions
- [PRO] Fixed the
snapshotcommand failing against CockroachDB with the Liquibase Pro license key applied [DAT-8253] - Fixed the dependency order for a changelog file with the
addPrimaryKeyChange Type generated by thegenerate-changelogcommand for PostgreSQL [DAT-8256] - [PRO] Fixed the following environment variables
LIQUIBASE_COMMAND_CHECKS_CONFIGURE_CHECKS_SETTINGS_FILE,LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SETTINGS_FILE, andLIQUIBASE_COMMAND_CHECKS_SHOW_CHECKS_SETTINGS_FILEto be detected when running the quality checks commands [DAT-8546] - Fixed the default value of the
strictparameter. The default value isfalse. You can set thestrictparameter as follows:liquibase.strict=false|truein your liquibase.properties file--strict=false|trueas a CLI parameterLIQUIBASE_STRICT=false|trueas 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]
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](https:/...
v4.6.1
Liquibase 4.6.1 is a patch release
Please report any issues to https://github.com/liquibase/liquibase/issues.
Notable Changes
- Liquibase 4.6.0 release has the wrong version of the Liquibase Pro XSD file. This release fixes that issue.
v4.6.0
Liquibase 4.6.0 is a major release
Please report any issues to https://github.com/liquibase/liquibase/issues
Notable Changes
Starting with version 4.6.0, the Windows and Mac/Linux Liquibase installers and the .tar.gz and .zip installation files include the most common JDBC drivers in the installation package:
- DB2
- Firebird
- H2
- HSQLDB
- PostgreSQL
- MariaDB
- MSSQL
- Oracle
- SQLite
To use the available drivers, see the Adding and Updating Liquibase Drivers documentation. Also, check the page for the cases when you need different drivers. [PR#2031] [DAT-7438]
Note: Since Liquibase 4.6.0 provides driver jar files, the size of the installation package is bigger than the size of the installation package in earlier versions.
Liquibase Pro Changes
- Quality checks have configurable severity and exit codes [DAT-8171]
- The quality checks bulk-set command [DAT-8289]
- New quality checks:
- Static check: Warn when a table truncation is detected [DAT-7933]
- Dynamic check: Warn when granting specific privileges [DAT-7972]
- Static check: Warn when the
GRANT WITH ADMIN OPTIONstatement is detected [DAT-7955] - Static check: Warn when the
GRANT WITH GRANT OPTIONstatement is detected [DAT-7995]
- The
liquibase.checks-settings.conffile is unencoded in version 4.6.0 and later versions for easier inspection that allows you to resolve a merge conflict in source control. Liquibase backs up encoded files in the working directory, and you can still use previous versions by specifying the--checks-settings-fileparameter in the CLI, as an environment variable, or as a property in the liquibase.properties file. [DAT-8473]
If you use Liquibase Hub, check the Liquibase Hub DevOps metrics documentation to learn more about DevOps metrics that provide the data to optimize your DevOps performance.
Enhancements
- [PR#1975] [nvoxland] Changed the XSD default
errorOnMissingOrEmptyattribute totruefor theincludeAllattribute in the XML changelog file. The PR fixes PR#1960. - [PR#1993] [siudeks] Added support for deferrable primary keys in the
createTableChange Type. The PR fixes PR#1597 - [PR#1986] [alexey-ivanov-official] [parthdesai21google] Added support for the
constraintNameattribute in thedropNotNullConstraintattribute. Updated theaddNotNullConstraintrollback logic to pass the constraint name to the generateddropNotNullConstraintchange. The PR fixes PR#1492 and PR#1942. - [PR#2114] [nvoxland] Improved code and added tests in the
liquibase.utilpackage - [PR#1679] [thomseno] Changed the
datetimetype todatetime2for thetimestamptype on SQL Server. - [PR#2144] [matejsp] Changed the default encoding to UTF-8. Added a new global
liquibase.fileEncodingsetting, which you can set as--file-encoding=ASCIIin the CLI,liquibase.fileEncoding: ASCIIin the liquibase.properties file, andLIQUIBASE_FILE_ENCODING=ASCIIas an environment variable. The PR fixes PR#1445. - [PRO] Added a message to warn Liquibase Pro users when they have noncompliant Liquibase environment variables if the
strictattribute is set totrue[DAT-6946]
Fixes
- [PRO] Fixed the issue with Liquibase 4.4.0 and later versions to prompt if the Liquibase Pro license key is expired or invalid. [DAT-7862]
- [PRO] Fixed Liquibase Pro SQL Plus changesets failures with the Kerberos setup [DAT-8102]
- [PRO] Fixed the
snapshotcommand using for CockroachDB with Liquibase Pro license key [DAT-8253] - Fixed an issue with running quality checks on Windows when using a configuration file created on Linux/macOS [DAT-8298]
- Fixed the
ChangesetCommentCheckcheck to handle a lack of comments in thetagDatabaseChange Type [DAT-8313] - Fixed the default severity for the existing
liquibase.checks-settings.conffiles [DAT-8328] - Fixed the
checks customizeandchecks copycommands to handle directories with spaces [DAT-8389] - Fixed the
schemasandincludeSchemaattributes for thegenerateChangeLogcommand in Liquibase 4.4 and later versions [DAT-8133] - Fixed the quality checks customization issue when using Git Bash [DAT-8392]
- Fixed the message for the quality checks severity customization [DAT-8415]
- Fixed the quality checks halting execution when the checks settings file contains entries for rules which do not exist in the system. Liquibase skips unknown checks and continues the execution [DAT-8507].
- [PR#1407] [pirocraft] Fixed the issue with Liquibase inserting a wrong default datetime value into MySQL. The PR fixes PR#1395.
- [PR#1415] [Alex1OPS] Fixed the
insertChange Type with thevalueSequenceNextandvalueSequenceCurrentattributes to use the schema specified on a statement level of a changeset. The PR fixes PR#1304. - [PR#1931] [nvoxland] Fixed the issue with Liquibase throwing a null pointer exception in the CLI if the
LicenseServiceinterface cannot be loaded because of the missingjaxbdependencies - [PR#2001] [haster] Fixed the
UniqueConstraintSnapshotGeneratorclass switching to a bulk query after four unique constraints. The PR fixes PR#1996. - [PR#1973] [doakd] Fixed the issue with Liquibase formatted SQL changesets that are skipped if there is a space in the
--changesetline. The PR fixes PR#1919. - [PR#104] [nvoxland] Fixed the
dropAllcommand failing in the PostgreSQL database when the Liquibase-Cassandra extension is in theliquibase/libdirectory. The PR fixes PR#47. - [PR#2006] [kdenis4] Fixed Liquibase not reading the
liquibaseSchemaNameandliquibaseCatalogNameconfiguration settings. The PR fixes PR#2000. - [PR#1465] [danielthegray] Fixed the issue with Liquibase incorrectly inserting a long CLOB value in the database. Added integration tests.
- [PR#1974] [gjvoosten] Fixed the issue with Liquibase not handling case-sensitive primary key names in the
dropPrimaryKeyattribute for PostgreSQL. The PR fixes PR#1933. - [PR#1941] [meisenla] [ckulenkampff] Fixed the
sqlFileChange Type to handle theencodingattribute. The PR fixes PR#1760.
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
- Setup a chat with the Product team
Our first-time contributors
- doakd
- kdenis4
- siudeks
- alexey-ivanov-official
- [parthdesai21google](https:/...
v4.5.0
v4.5.0
Liquibase 4.5.0 is now available at Liquibase.org.
Here is a closer look at what we improved in the latest release.
Liquibase 4.5.0 is a major release
Please report any issues to https://github.com/liquibase/liquibase/issues.
Notable Changes
Liquibase 4.5.0 includes support for Liquibase Quality Checks, which allow you to run checks against changelogs and SQL scripts by flagging conditions and configurations you need.
There is a new family of commands to use to run quality checks:
liquibase checks showto list the available quality checksliquibase checks runto run the available quality checks- along with
enable,disable,customize,copy,reset, anddelete options, andliquibase checks --help` to learn more
The following is a list of changes related to Liquibase Quality Checks:
- 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]
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 - https://www.liquibase.org/development/contribute.html
- Make doc updates - https://github.com/liquibase/liquibase.github.com/tree/master/documentation
- Help by asking and answering questions -- https://forum.liquibase.org
- Setup a chat with the Product team -- https://calendly.com/liquibase-outreach/product-feedback
Our first-time contributors
Thanks to everyone who helps make the Liquibase community strong!
v4.4.3
Liquibase 4.4.3 is now available at Liquibase.org.
Here is a closer look at what we improved in the latest release.
Liquibase 4.4.3 is a patch release
This release includes many community-contributed pull requests, Liquibase Open Source and Liquibase Pro bug fixes, and enhancements to Liquibase Hub performance and pipelines.
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
sqlFileandrelativeToChangelogFileattributes fail when using thelogicalFilePathattribute #1277 darkcamper - The wrong path received if
relativeToChangelogFile=trueanddatabaseChangeLoghaslogicalFilePath != PhisicalFilePath#1353 kezhevatov
Bugfixes
- Added a separate query for DB2 on AS400, which fixed the
dropAllcommand on DB2 for iSeries #1412 wardvijf - Fixed the
logicalFilePathattribute not being serialized #1471 tms-91 - Fixed the
SqlParserbug 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
customChangeChange Type has nonameattribute #1592 danielthegray - Fixed the issue with Liquibase failing to create a DATABASECHANGELOGLOCK record and apply changesets into Firebird 3.
isNumericBooleannow checks theFirebird3Databaseinstance type and returns Boolean for Firebird 3. #1875 koushikd02 - Fixed the issue with escaping question marks in PostgreSQL: #1877 juszczakn and goostleek
- Fixed the issue with
ClassCastExceptionin a standard lock service:java.time.LocalDateTimecannot be cast tojava.util.Date#1878 jocmer-evooq and haidiiii - Added the MySQL reserved word
CUBEto the list of Liquibase reserved columns for the schema migration to work.CUBEis 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
CLOBdata into PostgreSQL. Instead of loading theCLOBfile name, PostgreSQL loads the content of theCLOBfile. #1791 jidma - Changed the MD5SUM column value from
RawSqlStatementtoUpdateStatement#1602 biryukovpavel - Fixed synchronization in
ChangeLogHistoryServiceFactory.java#1361 Olard - Fixed the changeset execution failure related to the
DATICAL_SPERRORLOGtable when using therunWith=sqlplusattribute and executing operations as a user with onlySELECT,UPDATEandINSERTpermissions [DAT-7410] - Combined Liquibase GitHub Action examples into the
liquibase/liquibase-github-action-examplerepository [DAT-6679] - Enabled the
dropAllreport to work with a registered changelog with no extra arguments and send the information to Liquibase Hub [DAT-7554] - Renamed the
tablespaceNameparameter toliquibaseTablespaceName[DAT-7676]
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 - https://www.liquibase.org/development/contribute.html
- Make doc updates - https://github.com/liquibase/liquibase.github.com/tree/master/documentation
- Help by asking and answering questions -- https://forum.liquibase.org
- Setup a chat with the Product team -- https://calendly.com/liquibase-outreach/product-feedback
Our first-time contributors
- darkcamper
- kezhevatov
- pierre2113
- tms-91
- devorgpl
- koushikd02
- juszczakn
- goostleek
- haidiiii
- jasonwjones
- smith-xyz
- jidma
- biryukovpavel
Thanks to everyone who helps make the Liquibase community strong!
v4.4.2
Liquibase 4.4.2 is now available here and through our website.
Here is a closer look at what we improved in the latest release.
Liquibase 4.4.2 is a patch release
This release includes community-contributed pull requests, Liquibase Open Source and Liquibase Pro bug fixes, and enhancements to the dropAll command and SQL*Plus.
Known Issues
UniqueConstraintSnapshotGenerator does not handle more than four unique constraints. The diff command reports a difference in unique constraints caused by the PostgreSQL database snapshot having fewer unique constraints than the snapshot from another database compared. Also, the issue can cause unreliable diffs and changelog generation for all non-MySQL databases. The fix will be available in the next release. #1996
Liquibase Open Source Issues
- Changed
NullPointerExceptiontoChangeLogParseExceptionfor the output when there is a typo in achangeSetnode #1593 danielthegray - Added the
supportmethod toDatabaseConnection#1784 alexandru-slobodcicov - Fixed the issue with handling
serialandbigserialifliquibase.convertDataTypes=false#1883 szandany - Improved the
ConfigurationValueProviderperformance #1952 stuartwdouglas pmancaux - Added the ability to allow an empty string for the
defaultValueattribute #1963 ZwoCa - Reintroduced support for the
-Darguments in the CLI #1943 Gama11 - Restored the
updateTestingRollbackcommand #1939 chornota - Added the Maven goal for
unexpectedChangeSets#1972 szandany
Liquibase Pro Issues
- DAT-6799 Added the ability to handle special characters in procedures when using the
generateChangeLogcommand. - DAT-7376 SQL*Plus: Fixed the issue with formatted SQL changesets and
runwith:sqlplusbeing stopped unless Liquibase includes a quit statement. - DAT-7461 SQLPlus: Fixed the SQLPlus spool log issue.
Additional Issues
- DAT-6972 Extended the
dropAllcommand with optionalhubConnectionIdandhubProjectIdattributes. 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
connectionjdbcurlwhen there is no project or connection ID with thedropAllcommand. - DAT-7036 Improved the Liquibase Pro License key messaging.
- DAT-7489 Added the ability to handle a declined auto-registration when running the
dropAllcommand. - DAT-7505 Fixed auto-registration issues.
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 - https://www.liquibase.org/development/contribute.html
- Make doc updates - https://github.com/liquibase/liquibase.github.com/tree/master/documentation
- Help by asking and answering questions -- https://forum.liquibase.org
- Setup a chat with the Product team -- https://calendly.com/liquibase-outreach/product-feedback
Thanks to everyone who helps make the Liquibase community strong!
v4.4.1
Liquibase 4.4.1 is now available here and through our website.
Here’s a closer look at what's included in the latest release.
Liquibase 4.4.1 includes bug fixes and updates
This release introduces SQL*Plus fixes for Liquibase Pro users, addresses some Liquibase Hub integration issues, along with some other bugs listed below.
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 fixes
- Liquibase 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
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 - https://www.liquibase.org/development/contribute.html
- Make doc updates - https://github.com/liquibase/liquibase.github.com/tree/master/documentation
- Help by asking and answering questions -- https://forum.liquibase.org
- Set up a chat with the Product team -- https://calendly.com/liquibase-outreach/product-feedback
Thanks to everyone who helps make the Liquibase community strong!
v4.4.0
Liquibase 4.4.0 is now available here through Liquibase.org.
Here’s a closer look at what's included in the latest release.
Liquibase 4.4.0 is a major release
While there are significant changes in important Configuration and Command APIs, and a new CLI library, this release should be 100% backwards compatible. Please report any issues to https://github.com/liquibase/liquibase/issues
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
--helpcontent
- including new command options and
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)
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 - https://www.liquibase.org/development/contribute.html
- Make doc updates - https://github.com/liquibase/liquibase.github.com/tree/master/documentation
- Help by asking and answering questions -- https://forum.liquibase.org
- Setup a chat with the Product team -- https://calendly.com/liquibase-outreach/product-feedback