Upgrading from 1.8.1 to 1.9.5

Hi all.  I’m trying to find documentation on migrating from 1.8.1 to 1.9.5.  It’s definitely not a drop-in replacement.  I’ve had the following problems:

Duplicate keys in the DATABASECHANGELOG table for ‘alwaysRun’ change sets.  For example:

    liquibase.exception.JDBCException: Error executing SQL INSERT INTO `DATABASECHANGELOG` (`DATEEXECUTED`, `AUTHOR`, `LIQUIBASE`, `DESCRIPTION`, `COMMENTS`, `MD5SUM`, `ID`, `FILENAME`) VALUES (NOW(), 'josh', '1.9.5', 'Custom SQL', 'Set the default storage engine.', '92131119c65016ef3f9f1226385bcfa1', 'prepare', 'lqScript.xml') at liquibase.database.template.JdbcTemplate.execute(JdbcTemplate.java:55) at liquibase.database.template.JdbcTemplate.execute(JdbcTemplate.java:86) at liquibase.database.AbstractDatabase.markChangeSetAsRan(AbstractDatabase.java:1309) at liquibase.parser.visitor.UpdateVisitor.visit(UpdateVisitor.java:28) at liquibase.parser.ChangeLogIterator.run(ChangeLogIterator.java:41) at liquibase.Liquibase.update(Liquibase.java:112) ... Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'prepare-josh-lqScript.xml' for key 'PRIMARY' ... at liquibase.database.template.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:78) at liquibase.database.template.JdbcTemplate.execute(JdbcTemplate.java:48) ... 33 more

The change set is:

            Set the default storage engine.
            SET storage_engine=MYISAM;   

Duplicate column name errors for change sets that work in 1.8.1.  This might be because of the checksum issues, not sure.

Lots of checksum errors when migrating a snapshot of a production database.  Fixed that by clearing the checksums though.

Maybe I should stick with 1.8.1 and wait for 2.0?

There were some checksum incompatibilities between 1.8 and 1.9, but I thought it was just with the add/remove not null constraint changes, not the sql tag. 

There will be a similar but more extensive md5sum change from 1.9 to 2.0.  We try very hard to keep checksums consistent between releases, and we are introducing a versioned format in 2.0 to better handle changes we have to make. 

Upgrading to 1.9 or waiting for 2.0 is up to you.  I’m hoping 2.0 is out in the next few weeks, but I’ve been hoping that for a few months now… :slight_smile: