日期:2014-05-16  浏览次数:20426 次

软件/数据库升级降级, Java里面有没有类似Rails ActiveRecord的方案?
公司产品升级降级比较严格, 以前有一套自定义格式, 格式很不好理解, 也很容易出错.

羡慕Rails里面的ActiveRecord:Migration的优雅升级/降级方案, 一直想引入项目中...

Google一番之后, 发现C#已经有两个实现: RikMigrations和Migrator.NET. 参见http://www.infoq.com/cn/news/2009/01/migrations_dotnet

可是Java世界里好像没人喜欢这玩意, JActiveRecord仅仅实现了ActiveRecord的基本功能...是不是大家都在用更好的API?


redmine中升级降级的序列:
http://www.redmine.org/projects/redmine/repository/show/trunk/db/migrate
redmine中一个版本的升级降级例子:
http://www.redmine.org/projects/redmine/repository/entry/trunk/db/migrate/007_create_journals.rb

里面直接用api创建表,索引, 插入数据,修改/删除数据.
将及时是个反过程, 很简单直观.

如果用Java实现, 字段可以根据pojo生成常量/枚举列表, 更容易操作, 避免出错.

另外, 这种升级机制, 甚至可以扩展到对文件系统/进程的操作, 对于严谨的产品, 是个很好的升降级方案.