总觉得叫数据库迁移容易引起误会,我也不知道怎么翻译好,加上continuous可能更容易理解些,呵呵。
Database Migration的好处就是业务代码与数据库SQL变更更紧密的结合在了一起,两者的版本有了明确的对应关系。
以前如果是多版本多feature并行开发,某feature发布时可能DBA或运维根本就无法确定该执行哪些SQL,只能依赖良好的文档了。
Java
Liquibase: http://www.liquibase.org/
Flyway: http://flywaydb.org/
Mybatis Migrations: http://mybatis.github.io/migrations/
Mybatis Migrations Maven Plugin: http://mybatis.github.io/migrations-maven-plugin/
如果你在用Maven构建你的Java项目,Liquibase和Flyway都是不错的选择,都有Maven插件。
Liquibase和Flyway的区别在于Flyway到目前为止(2.3版本)不支持rollback,其它都差不多,Liquibase已经支持原生SQL了。
参考文档:
Continuous database migration with Liquibase and Flyway
http://stackoverflow.com/questions/8418814/db-migration-tool-liquibase-or-flyway
flyway框架对数据库迁徙的支持配置(基于ruby on rails的db migrate 思想)
PHP
Phinx: http://phinx.org/
yiiframework(since 1.1.6): http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.migration
Python
https://pypi.python.org/pypi/simple-db-migrate
Ruby
http://guides.rubyonrails.org/migrations.html
http://guides.ruby-china.org/migrations.html
鼻祖,膜拜下~
Grails
http://grails.org/plugin/database-migration