作者:Ryan Daigle 来源:JavaEye   酷勤网收集 2008-05-30

摘要
  Rails的migrations数据迁移一直是争论的部分,一方面他们需要提供一个稳定一致的数据库支持,另外方面在频繁的开发过程中出现简单的命名冲突的时候数据迁移就会变得很混乱。Rails2.1将通过唯一的UTC-based timestamp来命名你的迁移,而不是sequential ordering序列号。

系列文章汇总《Ruby on Rails 2.1新特性

Rails的migrations数据迁移一直是争论的部分,一方面他们需要提供一个稳定一致的数据库支持,另外方面在频繁的开发过程中出现简单的命名冲突的时候数据迁移就会变得很混乱。新的改变将通过唯一的UTC-based timestamp来命名你的迁移,而不是原来的sequential ordering序列号。

当你创建新的迁移,你可以看到下面这个:

Ruby代码 复制代码
  1. > script/generate migration one   
  2.       create  db/migrate/20080402122512_one.rb  



而不是001_one.rb,这样的命名方法不容易出现冲突。

update:当你用SVN更新,并得到一个新的迁移,即使新的迁移时间比目前的早,但是,当你运行:db:migrate的时候,rails会聪明的应用到所有没有运行的迁移中。

另外一个功能修改是,能够用db:migrate:up 和 rake db:migrate:down运行升级和降级任务:

Ruby代码 复制代码
  1. > rake db:migrate:up VERSION=20080402122523   
  2. == 20080402122523 Two: migrating ==============================================   
  3. -- create_table(:two)   
  4.    -> 0.0122s   
  5. == 20080402122523 Two: migrated (0.0124s) =====================================  


原文:ryandaigle.com
来自:http://www.javaeye.com/news/2392

分类: .NET技术 网页设计 交互设计

上一篇:Rails2.1新特性之五:具有has_finder功能的named_scope   下一篇:Rails2.1新特性之七:Easier Timezones