By bloid
via java.dzone.com
Published: Apr 28 2008 / 22:21
Migrate4j is a migration tool for java, similar to Ruby's db:migrate task. Unlike other Java based migration tools, database schema changes are defined in Java, not SQL. This means your migrations can be applied to different database engines without worrying about whether your DDL statements will still work.
Comments
dzonelurker replied ago:
What has this to do with database migration??
demetrios replied ago:
Well, it has to do with "DDL versioning", but in both directions (up and down).
The name is of course confusing, but the concept is interesting and practical - at least in Rails.
Torax replied ago:
Same question here. I always understood that migration is about moving structure AND data from one database to another (often from a different vendor) one. Looking at the project page, i only see creation of DDL statements, not even intelligent handling/detection of differences in the (existing) database structure?
demetrios replied ago:
> I always understood that migration is about moving structure AND data from one database
> to another (often from a different vendor) one.
Not just that. The most common "migration" scenario (that people ignore cause they' think of an application as something statical - or a blackbox maintained by DB Admins) is migration to a new version.
> Looking at the project page, i only see creation of DDL statements,...
They just started the project - look at the SVN history :).
The concept however is very practical in Rails cause there the tool is pretty intelligent and reduces allot of work (even migrating from one vendor to another :) ).
I'm not sure if they'll be able to make it equally practial in Java too: on DZone were announced more than one Java project like this, but I think (from my trials) that all failed to be really practical (like "migrations" in Rails).
toddrun replied ago:
In this case, "migration" refers to the database schema. Moving data between databases, especially when the table structures are different, is generally handled by ETL (Extract, Transform and Load) tools. A migration tool is useful for ongoing development while ETL is usually geared towards database maintenance.
Voters For This Link (16)
Voters Against This Link (1)