October 24, 2013

Liquibase 3.0.7 Improves Memory Usage

Lots of good bugfixes in 3.0.7, but major improvements are:

  • Significantly decreased memory usage, especially with large sql files
  • Improved checksum performance
  • Fixed SQLite support
  • Improvements to data type handling, especially in MS SqlServer

Discovered Checksum Issue:

It was recently discovered that a change in the 3.0.5 release caused changeSets with update and delete changeSets with where clauses to compute a different checksum version than the 3.0.0-3.0.4 release. I decided to leave the 3.0.5 fix in because at this point, people would be affected by either leaving or reverting the change and keeping it in will preserve the bugfix. If you are upgrading from 2.x or 3.0.5+, this will not affect you. If you are upgrading from 3.0.0 through 3.0.4 and have no <update> or <delete> changeSets, this will not affect you. If you do run into this, you simply have to null out the md5sum column in databasechangelog for the affected changesets. This can be done either through an “update databasechangelog set md5sum=null” call or a more targeted “update databasechangelog set md5sum=null where id=’AFFECTED_ID’ and author=’AFFECTED AUTHOR’”. There is also a “liquibase clearCheckSums” command that runs the update query.

Download

Download Liquibase from https://www.liquibase.com/download or from the Maven repository as it winds its way through the mirror process. Visit the user forums if you have any questions.

All Closed Issues

  • CORE-1247 - (Sqlite) bad syntax in create table statements with single autoincrement primary key
  • CORE-1275 - LoadData insert statements do not escape column names containing an open paren
  • CORE-1312 - Error when creating changelog tables
  • CORE-1399 - IncludeAll Failing when running in WAR files
  • CORE-1440 - Invalid Reorg table statement gets generated on DB2
  • CORE-1504 - dbDoc should html-encode author names
  • CORE-1506 - updateSQL generates invalid SQL for oracle
  • CORE-1507 - dropAll fails with NullPointerException
  • CORE-1509 - Memory improvements for large sqlFile files
  • CORE-1510 - Maven plugin fails to configure parameters within property file with trailing spaces, error message misleading
  • CORE-1511 - modifyDataType truncates enum values
  • CORE-1512 - Insert with valueClobFile fails with unicode encoding.
  • CORE-1515 - Liquibase MSSQL: Snapshot incorrectly injecting size for some datatypes
  • CORE-1516 - Liquibase MSSQL: Snapshot recording incorrect size for VARBINARY
  • CORE-1517 - Liquibase MSSQL: Autoincrement property of decimal datatype not supported
  • CORE-1518 - Liquibase MSSQL: Incorrect datatypes captured in the snapshot
  • CORE-1520 - Liquibase Snapshot: Default datetime is wrong
  • CORE-1521 - When generateChangeLog is run, objects do not always come back in a consistent order
  • CORE-1522 - PreparedStatement.setCharacterStream() not supported by Postgres JDBC driver.
  • CORE-1524 - Ant diff command running diffChangeLog
  • CORE-1525 - Liquibase MSSQL: Snapshot not capturing alter statements that add default values
  • CORE-1526 - Unicode string escaping in MSSQL
  • CORE-1530 - Column called VERSION is quoted in PostgreSQL
  • CORE-1531 - includeAll with relativeToChangeLogFile fails under certain conditions
  • CORE-1532 - NPE in ChangedIndexChangeGenerator
  • CORE-1534 - Single quotes in liquibase.bat causing issues
  • CORE-1519 - Allow relative file paths for valueClobFile and valueBlobFile inserts/updates.
  • CORE-1533 - Performance improvements in dropAll
Nathan Voxland
Nathan Voxland
Share on: