我可以编辑迁移文件并运行迁移吗?

时间:2015-11-18 22:39:17

标签: ruby-on-rails

假设我使用User创建了email:string password_digest:string模型。

稍后我决定添加另一列type:string

我可以只编辑迁移文件并再次运行rake任务来更新数据库吗?

另外,我知道有rake db:rollback命令,但是我可以指定要回滚的迁移吗?

1 个答案:

答案 0 :(得分:0)

通常,最简单的方法是添加新迁移以添加新列。

但是,如果尚未运行迁移,则可以编辑它,然后运行它。

此外,如果您已经运行了迁移,则可以执行rake db:rollback,然后编辑迁移,然后再次运行。 (如果迁移仅在开发模式下运行且尚未投入生产,我只会这样做。)

在指定要回滚的迁移方面,将按时间顺序应用迁移并进行回滚。如果你想回滚你做的第3次最后一次迁移,那么你必须回滚你做的最后一次,然后是倒数第二次,然后是最后一次。因此,从这个意义上讲,您无法指定要回滚的特定迁移。您必须指定迁移到“回滚到” - 即,回滚自该迁移以来发生的所有迁移。