January 8, 2015

Liquibase 3.3.2 Released

Liquibase 3.3.2 is officially released. It is primarily a bugfix release, but has one major new feature: object diffChangeLog/generateChangeLog object filtering.

includeObjects/excludeObjects logic

You can now set an includeObjects or excludeObjects paramter on the command line or Ant. For maven, the parameteres are diffExcludeObjects and diffIncludeObjects. The format for these parameters are:

  • An object name (actually a regexp) will match any object whose name matches the regexp.
  • A type:name syntax that matches the regexp name for objects of the given type
  • If you want multiple expressions, comma separate them
  • The type:name logic will be applied to the tables containing columns, indexes, etc.

NOTE: name comparison is case sensitive. If you want insensitive logic, use the (?i) regexp flag.

Example Filters:

  • “table_name” will match a table called “table_name” but not “other_table” or “TABLE_NAME”
  • “(i?)table_name” will match a table called “table_name” and “TABLE_NAME”
  • “table_name” will match all columns in the table table_name
  • “table:table_name” will match a table called table_name but not a column named table_name
  • “table:table_name, column:*._lock” will match a table called table_name and all columns that end with “_lock”

Full 3.3.2 Change Log:

  • CORE-875 - Ignore tables for diffs and generateChangelog
  • CORE-1877 - SQLOutput prints endDelimiter regexes
  • CORE-2114 - AddAutoIncrement on Postgres does not work when changes are applied on a specific schema
  • CORE-2141 - handling dependencies and WAR as classpath
  • CORE-2166 - SpringLiquibase: includeAll within jar causes SetupException
  • CORE-2172 – dropPrimaryKey without constraint name on sql server doesn’t honour schema information
  • CORE-2174 - Bad exception handling in OracleDatabase.setConnection
  • CORE-2180 - NPE with bad name
  • CORE-2182 - ClassLoader leak due to shutdown hooks

Since the 3.3.0 announcement, 3.3.1 was also released in December as a bugfix release with the following changes:

  • CORE-1920 - SpringLiqubase includeAll is not including files
  • CORE-2009 - ClassCastException when executing a custom task change (AntClassLoader problem)
  • CORE-2097 – “mvn liquibase:futureRollbackSQL” asks for tag, count or date
  • CORE-2099 - SQLAnywhere support (Driver not capable)
  • CORE-2103 - changelogSchemaName/changelogCatalogName configuration options will not work on Oracle DB
  • CORE-2104 - ConcurrentModificationException iterating over System.getProperties().entrySet()
  • CORE-2105 - Maven profile performing dropAll and update on Oracle failing with an error on populated database.
  • CORE-2107 - LOWER() keyword fails on Postgres createIndex task
  • CORE-2108 - dropAll command trying to drop column on table that has already been dropped
  • CORE-2116 - Could not find implementation of liquibase.logging.Logger
  • CORE-2118 - Change default diffChangeLog/generateChangeLog objectQuotingStrategy back to LEGACY
  • CORE-2119 - Bad finally block in SpringLiquibase.afterPropertiesSet()
  • CORE-2120 - LoadUpdateData with value=NUMERIC quoting values
  • CORE-2121 - DB2: DiffChangeLog/GenerateChangeLog/DropAll sees alias column and tries to drop/add them
  • CORE-2127 - updateSQL creates duplicate DATABASECHANGELOGLOCK tables
  • CORE-2130 - setFetchSize to a negative value breaks Oracle JDBC Driver
  • CORE-2134 – ExecuteCommand won’t run with no os attribute.
  • CORE-2136 - Mysql must quote PARTITION as a keyword
  • CORE-2137 - Special characters (
) copied during generateChangelog on DB2/400
  • CORE-2139 - H2Database.supportsDropTableCascadeConstraints() returns false
  • CORE-2142 - generateChangeLog not including all columns in a table
  • CORE-2146 - snakeyaml is pulled in as transitive dependency for using projects
  • CORE-2149 - Liquibase command line fails
  • CORE-2150 – On the 3.3.0-SNAPSHOT, liquibase –version returns 3.2.0
  • CORE-2153 - Liquibase 3.2.1 is no longer compatible with Oracle 9
  • CORE-2155 - diffTypes=data fails with java.sql.SQLException: Attribute value not valid (dataOutputDirectory attribute causes build to fail)
  • CORE-2156 – Resource loader can’t load changelog file
  • CORE-2157 - SQLException if there are single quotes in ChangeSet
  • CORE-2159 - Datetime2 no longer used for MSSQL
  • CORE-2161 – includeAll relativeToChangelogFile=”true” doesn’t work
  • CORE-2164 - SpringLiquibase: includeAll within jar causes NullPointerException
  • CORE-2179 - Creating functional indexes
  • CORE-2115 - Really slow when using fat jars
  • CORE-2125 - Make DatabaseChangeLog#include(String, boolean, ResourceAccessor) public
  • CORE-2148 - Build failure on jdk-1.8
  • CORE-2152 - Change logs in json format not processed by liquibase - parsing errors

Updated Extensions

The following extensions have also been recently updated with bugfixes, new features and support for Liquibase 3.3.x

Download

As always, Liquibase can be downloaded from the Liquibase download page and is available in the Maven repository as org.liquibase/liquibase-core. The extensions can be downloaded from their corresponding github repository “Release” pages.

Nathan Voxland
Nathan Voxland
Share on: