November 3, 2014

Liquibase 3.3.0 and 3.2.3 Released

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 rn
  • 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
Nathan Voxland
Nathan Voxland
Share on: