2009-09-18 41 views
0

我的migrate文件夹中有大约一百个左右的数据前缀迁移,然后大约有一百个左右的时间戳前缀,所以我想在某些时候Rails版本已更新。现在我想停止使用时间戳前缀的Rails,因为我更喜欢数字前缀。什么是实现这一目标的最佳方式,或者甚至有可能?一种方法可能是按照排序顺序手动重命名前缀,然后转到开发,登台和生产数据库,并用新数字更改时间戳,但这种方法看起来很乱。有没有其他的方法来完成这个?在使用时间戳生成一些迁移之后,我能否阻止Rails使用时间戳前缀进行迁移?

回答

2

如果你有一个团队,或者你想在其他方面进行分支和工作,时间戳迁移非常棒。但是,您可以更改如何使用配置设置来命名迁移。

#environment.rb 
config.active_record.timestamped_migrations = false 

而且....的lazy_developer插件我保持有任务的所有迁移文件转换成一个全新的迁移。我不保证它可以为你工作,但我已经在一些项目中使用它来获得我想要的东西。

http://github.com/napcs/lazy_developer

它主要负责schema.rb,使从一个新的迁移。它也尝试处理索引,但它使用迁移编号的时间戳,将其创建的新迁移设置为与上次迁移相同的名称,以便正确维护数据库的版本控制。

再一次,不保证这将工作,所以备份或分支您的项目第一!

如果我是你,我会放弃这一切。按惯例需要迁移名称,实际上,最多只能使用一次。如果您正在部署到新服务器或将项目检出到新计算机上,则应该真正使用rake db:schema:load,因为它速度更快。迁移是为了开发和增量数据库更改。就像我说的那样,为多个用户添加时间戳。