Comparison of Database Migration Tools

Database migration is a term for evolving databases in an agile environment. It is basically version control for your database so that releases can be controlled and managed. It has nothing to do with migrating from one database to another. 🙂
Martin Fowler and Pramod Sadalge talk in detail about agile database development in this podcast:
http://www.se-radio.net/2012/06/episode-186-martin-fowler-and-pramod-sadalage-on-agile-database-development/

There are many database migration tools available, the following comparison table might help you make a better choice:

db-deploy Flyway Liquibase MyBatis
Supported Types sql java api & sql java api, json, sql, xml, yaml java api & sql
Execution methods ant & command-line ant, command-line, gradle, java api & maven ant, command-line, java api, maven, spring & servlet-context command-line, java and maven
Database support Oracle, SQL Server, MySQL, PostgreSQL, H2, Hsql, Derby & SQLite Oracle, SQL Server, MySQL, PostgreSQL, H2, Hsql, Derby & SQLite Oracle, SQL Server, MySQL, PostgreSQL, H2, Hsql, Derby & SQLite Oracle, SQL Server, MySQL, PostgreSQL, H2, Hsql, Derby & SQLite
Rollback support no partially through repair command yes yes
Versioning  no custom  no  automated [date-time based]
Existing schema support no yes no no
Development activity no updates since May 2009 active active active
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s