dilipy 2010-05-24
公司产品升级降级比较严格,以前有一套自定义格式,格式很不好理解,也很容易出错.
羡慕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生成常量/枚举列表,更容易操作,避免出错.
另外,这种升级机制,甚至可以扩展到对文件系统/进程的操作,对于严谨的产品,是个很好的升降级方案.