Performance
The major focus of this release is performance improvements:
- Startup time is significantly improved for larger databases
- Preconditions now snapshot far less of the database
- Running generateChangeLog on a test MySQL database with over 4000 tables went from crashing after an hour to completing in 30 seconds. Even an Oracle database with the same structure finished in a couple minutes.
If you are still seeing any unexpected performance problems, file a bug report
You can download 3.0.5 from http://liquibase.org/download and through the maven repository system once it gets mirrored through. If you have any questions or problems, visit the forums or bug tracker
Notable Bugs
- Multi-column foreign keys are snapshotted correctly now
- Improved case-sensitive/insensitive handling
Potential Gotchas
Three bug fixes related to data type translations went into 3.0.5 which may cause issues for people that had been relying on incorrect behavior
- MS SQLServer “DATE” columns are now translated to “DATE” rather than SMALLDATETIME
- MySQL TIMESTAMP columns are now nullable if you do not specify that they should be not null
- H2 and HSQL CLOB columns are now translated as CLOB rather than LONGVARCHAR
Full Change Log
- [CORE-845] – “DATE” data type is deployed as “SMALLDATETIME” in SQL 2008
- [CORE-859] – Nullable TIMESTAMP columns in MySQL are not nullable.
- [CORE-1257] – Oracle: generateChangeLog exports a column of type “NUMBER” as “NUMBER(0,-127)”
- [CORE-1288] – H2 (and other) support for BLOB and CLOB is incorrect
- [CORE-1338] – Using apostrophe in changeset’s ID causes SQL error
- [CORE-1360] – Confirmation message of a custom change change is only printed if loglevel is debug
- [CORE-1364] – SQL Server incorrect INFORMATION_SCHEMA table case in native query
- [CORE-1365] – SQL Server: “Database ‘dbo’ does not exist” error
- [CORE-1401] – Unnecessary snapshot on liquibase update
- [CORE-1415] – Liquibase tables are not detected in oracle running in the SYSTEM schema
- [CORE-1426] – ORACLE: Check for existing tables is case sensitive
- [CORE-1429] – Random order of UniqueConstraint and ForeignKey drop statements
- [CORE-1459] – Maven updateSQL creates databasechangelog table, should only output SQL to do it
- [CORE-1462] – renameColumn with ‘text’ data type improperly trying to use ‘clob’ against MySql
- [CORE-1433] – Handle changes in column datatypes in diffChangeLog
- [CORE-1434] – Formatted Changelog format not parsing UTF8 .sql files with BOM
- [CORE-1453] – Multi-column foreign keys not snapshotted correctly