Posted 18 Jun 2013 by Nathan Voxland
At long last, I’m happy to announce that Liquibase 3.0.0 is finally out!
There has been a lot of changes and a lot of work put into 3.0, but the major highlights are:
Starting with Liquibase 2.0, moving to a plugin/extension model has been a major focus of development. With 3.0 we focused on adding extension support for the database snapshot and comparison logic as well as for the DatabaseChangeLogLock code. The new extension support gives the ability to dynamically add snapshot support for additional database object types, control how those types are compared across databases, modify the logic used for comparing standard liquibase types, manage how fixes for differences in new and existing types are represented in generated changelogs, and much much more.
The general strategy for Liquibase is to have the core library easily support the 80% of functionality that is common across databases and across users, with built in features like contexts, changelog parameters, and modifySql that will cover up to 95% of use cases. Extensions will address the final 5% of use cases that are always very company specific and often contradictory to what other users expect.
The release timelines for 2.0 and 3.0 were much longer than I would have liked in large part because I was trying to build up the architecture to support the extension points people need. Now that 3.0 is out, the plan is to go back to a much smaller release cycle with more manageable feature changes and bug fixes while also better seeding and managing the community extensions.
For more information on extension support in Liquibase, visit the extension portal. Documentation is still lighter than I would like, but more will be coming.
For those integrating with the Liquibase Java API, there is now more metadata available from Change classes as well as separated and better organized “diff” and “snapshot” logic.
For the normal user, Liquibase 3.0.0 adds:
For the normal Liquibase user, version 3.0.0 is a drop in replacement for any of the 2.x releases. For extension developers and integrators, there has been some changes to the Java APIs that may impact your code. Those changes will be documented at liquibase.org/v3_upgrade.html. Liquibase 3.0 now requires Java 1.6+.
The raw Jira release notes are available at https://liquibase.jira.com/secure/ReleaseNote.jspa?projectId=10020&version=10020