I was surprised that there were so many libraries that do the same thing — manage change in your database schema. Here’s what I’ve found so far:
- Liquibase (migrations are specified in db-generic XML)
- migrate4j (migrations must be writted in java, and has “down” and “up” support)
- AutoPatch (“down” and “up”, with both .sql and .java support)
- dbmigrate (no “down” — only “up”, with both .sql and .java support, but no test coverage)
- c5-db-migration (nice integration with maven)
I’ve used a heavily patched version of dbmigrate on my last project at work, and it’s doing what it’s supposed to. I’ve only read documentation for the other projects.
Update March 2010:
dbmigrate is abandonware that doesn’t have any unit test coverage. I’d suggest looking at c5-db-migration.
Related posts:
- Java for Mac OS X 10.5 Update 1 adds support for Java SE 6
Java for Mac OS X 10.5 Update 1 adds support for Java SE 6 Update: Apple’s java6 port can’t run IDEA… Back to java5. :-\...... - java.beans.XMLEncoder Considered Harmful
To all java engineers out there: Before you even think about using java.beans.XMLEncoder and it’s sibling, XMLDecoder, make sure you verify two things: Are you OK with your application running...... - Set up JAVA_HOME to track Java Preferences.app on Mac OS X
Mac OS X’s Java Preferences.app has a pane for switching between versions of the JDK, but I just found out from a coworker (thanks, Mike!) that you can make your...... - TestNG, test groups, IDEA, and @BeforeMethod
Say you have public class SomeTestNG { @BeforeClass public void setup() { … } @Test public void test1() { … } @Test public void test2() { … } } You’ll......