我为我的Rails 3应用程序编写了几个迁移,但是我想更改迁移的顺序.如何更改迁移顺序或序列?是否像重新命名迁移文件一样简单,看起来是什么时间戳?
我知道这是一个奇怪的问题,但是基本上我做了一些我的迁移,并删除了一些旧的迁移,现在我需要在创建一个新的表之前删除一个表.我也知道我可以在create-the-new-table迁移中包含drop语句,但我很想知道如何重新排序迁移.
解决方法
是的,它运行未按前缀顺序运行的迁移.在早期版本的rails中,可能是2.1或2.2,它们以01开头编号,但是它们切换到时间戳.
有一个表可以跟踪哪些迁移已经运行.意图是,我已经添加了迁移的多个开发人员,稍后在版本控制中进行了检查.因此,可能有一个迁移尚未运行,但是在运行的最高编号的迁移之前进行编号.
如果您更改迁移顺序(和我有),则在重新排序所有迁移之前,首先降低版本效果会更好.使用VERSION选项与db:migrate.如果要保留的最高编号的迁移(不运行)为20120318143249,则以这种方式调用.
rake db:migrate VERSION=20120318143249
我经常在迁移下运行,重新运行它,直到我得到我的满意的迁移的细节.有时我要重新命令他们,当我想在其中一个工作时,我希望它成为最后一个.