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