Liquibase 3.2.3 and 3.3.0 have been released. As usual, they can be downloaded from the Liquibase download page and are available in the Maven repository as org.liquibase/liquibase-core.
Both 3.2.3 and 3.3.0 should be drop-in replacements for 3.2.2. A new batch of Liquibase extensions will be released over the next few days.
New “label” attribute on changeSet
Labels are general purpose way to categorize changeSets like contexts, but working in the opposite way. Instead of defining a set of contexts at runtime and then a match expression in the changeSet, you define a set of labels in the context and a match expression at runtime.
The most common time you would use labels instead of contexts is when the person doing the liquibase update has the knowledge of the types of changeSets to run, not the person writing the changeSet.
Labels can also be applied to modifySql
New change log commands and attributes
New “empty” tag for explicitly marking a changeSet as unused
New “output” tag for outputting a message during Liquibase update.
New relativeToChangeLogFile attribute for loadData and loadUpdateDate
New fullDefinition=true|false attribute on createView to support defining an entire view definition (including “column” names)
Support for clustered/nonclustered indexes and primary keys
A new “clustered=’true|false’” attribute is now avaiable on createIndex and createPrimaryKey to control whether they should be created as clustered or not.
And More
Saving of “remarks” in MySQL and MSSQL
Improved data type handling
Performance improvements
Official RPM and DEB packages built with release
Major refactoring and updating of Ant integration
Full release notes below
3.2.3 Change Log
3.2.3 is a patch release with smaller bug fixes. Even if not explicitly listed in the changelogs below, anything in 3.2.3 will be in 3.3.0.
CORE-1919 - SpringLiquibase fails when dropFirst is true
CORE-1987 - “mvn liquibase:diff” does not find any differences between databases
CORE-1988 - Reported size for Oracle NVARCHAR2 columns is wrong
CORE-1989 - Cannot set objectQuotingStrategy on root databaseChangeLog node
CORE-2002 - AbstractResourceAccessor generates path in a unpredictable way
CORE-2003 - Could not find implementation of liquibase.logging.Logger
CORE-2042 - If liquibase.jar is nested in another jar/war/ear, it fails to start with a “cannot find implementation of liquibase.logging.Logger” error
CORE-2058 - Load/Update tags should use “is null” not “= null” for null comparisons
CORE-2070 - dropAllForeignKeyConstraints does not work on Firebird databases
CORE-2075 - generateChangelog generates bad definition for TIME type
CORE-2080 - Liquibase “empty” change not present in XSD version 3.2
CORE-2065 - Use DOUBLE PRECISION for DOUBLE with Firebird
CORE-54 - Support System Properties in Maven Plugin
3.3.0 Change Log
CORE-16 - Support for “nonclustered” primary keys in mssql
CORE-54 - Support System Properties in Maven Plugin
CORE-1528 - Installer for Liquibase
CORE-1598 - support for rename sequence
CORE-1914 - New Change function: output
CORE-1942 - Support for changeSet “labels”
CORE-549 - relativeToChangelogFile for loadData, loadUpdateData, sqlFile
CORE-1438 - createView should support having the entire view definition in the change body
CORE-1502 - CLONE - UpdateSQL needs to append a “/” to the end of createProcedure for Oracle
CORE-1654 - logicalFilePath support in formatted sql
CORE-1660 - “remarks” attribute is ignored in MSSQL
CORE-1932 - support for encrypted passwords / custom properties
CORE-1946 - Have a rpm package for liquibase (built with maven)
CORE-1963 - Ability to define full CREATE VIEW statement in <createView> change.
CORE-1990 - Preserve inline comments in view snapshots in mssql
CORE-2060 - Support liquibase.properties files with unknown properties
CORE-2061 - Improvements to Informix support
CORE-2062 - Add onlyUpdate flag to loadUpdateData
CORE-2064 - Use ignoreClassPathPrefix for rollback as well
CORE-2065 - Use DOUBLE PRECISION for DOUBLE with Firebird
CORE-2066 - Support for –outputFile in command line
CORE-2067 - Refactor Ant Task codebase
CORE-2068 - New liquibase.hostDescription property for additional details in the DATABASECHANGELOGLOCK table
CORE-2069 - Use prepared statement in <update> change whenever a clob type is used
CORE-2072 - Do not include Oracle internal tables in snapshot/diff
CORE-870 - Postgres, in an ALTER TABLE ALTER COLUMN statement, sometimes needs USING clause
CORE-945 - Oracle : Temporary tables are created as regular tables
CORE-1463 - Views not generated correctly with generateChangelog
CORE-1556 - remarks attribute ignored for mysql
CORE-1723 - unable to update on DB2/400, version V6R1, on jt400-6.7.jar
CORE-1745 - afterColumn not working in MySQL
CORE-1774 - Autocommit not restored on close in SpringLiquibase
CORE-1882 - NullPointerException when MySQL foreign key points to an invalid table
CORE-1919 - SpringLiquibase fails when dropFirst is true
CORE-1922 - Sequence is not a reserved object name in HSQLDB
CORE-1925 - liquibase scripts can not represent clustered indexes
CORE-1937 - Oracle Float and VARCHAR precisions in changelog generated by generateChangeLog are incorrect
CORE-1952 - liquibase loadData does not properly load numeric field in boolean always as false
CORE-1956 - Double and float converted to FLOAT8(, 17) and FLOAT4(, 8) in PostgreSQL
CORE-1958 - Column type of “TIMESTAMP(6)” under MySql converted to TIMESTAMP dropping fractional seconds
CORE-1974 - dbchangelog-3.1.xsd missing <empty>
CORE-1977 - CreateSequence with cacheSize=0 failing on Oracle
CORE-1979 - MSSQL should not include parameters in SYSNAME data types
CORE-1981 - Parameters set in included file are no longer set in 3.2.0
CORE-1982 - Snapshot outputs defautlValueDate as defaultValueComputed on MSSQL for dates not in ISO format with a T in the middle
CORE-1986 - includeAll from changeLogs within a jar is not working
CORE-1988 - Reported size for Oracle NVARCHAR2 columns is wrong
CORE-1993 - Drop table with cascade is not supported by Sybase
CORE-1996 - addNotNullConstraint on h2 database has unexpected side effects
CORE-1997 - Bit changelog default value of 1 executed as 0
CORE-2002 - AbstractResourceAccessor generates path in a unpredictable way
CORE-2010 - Oracle data type SDO_GEOMETRY snapshotted as SDO_GEOMETRY(1)
CORE-2014 - applyToRollback property ignored when rollback changes are specified
CORE-2015 - DiffChangeLog writes to the wrong point in the file on windows if file uses \n not \r\n
CORE-2020 - Oracle default value current_timestamp converted to systimestamp
CORE-2021 - Column remarks not snapshotted in mssql
CORE-2026 - Oracle columns of type ANYDATA are snapshotted with a size
CORE-2028 - generateChangeLog on SQL Anywhere 11.0.1 throws DatabaseException Driver Not Capable
CORE-2032 - Snapshot incorrectly including clob/blob sizes on diff
CORE-2051 - Not quoting VIEW params with spaces when snapshotting
CORE-2054 - Add new “computed” column attribute to differentiate between an actual column name and a function as a column
CORE-2063 - Fix for H2 autoincrement “start with” and “increment by” syntax
CORE-2070 - dropAllForeignKeyConstraints does not work on Firebird databases
CORE-2075 - generateChangelog generates bad definition for TIME type
CORE-2080 - Liquibase “empty” change not present in XSD version 3.2
CORE-2081 - PrimaryKeyExists precondition without tableName is broken
CORE-2082 - Column snapshot on PostgreSQL does not include precision information for numeric data type
CORE-2087 - Executing against Oracle doesn’t respect liquibaseSchemaName or liquibaseCatalogName
CORE-2088 - outputDefaultSchema and outputDefaultCatalog command line parameters not respected
CORE-2093 - Error: Property ‘relativeToChangelogFile’ not found on object type liquibase.change.core.LoadDataChange
CORE-2094 - Liquibase.dropAll() should reset the lock service
CORE-2095 - Invalid generated changeset for mysql bit with defaultValue 0