编辑rails中的提交迁移

时间:2015-05-29 06:42:40

标签: ruby-on-rails ruby git migration

在我的项目中,我进行了以下迁移:

 1. 20141122184434_add_column_a_to_b
 2. 20141208235304_delete_data_from_b
 3. 20141217011359_add_table
 4. 20141218183503_remove_column_b_from_c

他们已经为我的开发分支提交了(但不是主人和制作人员)。几周后(并添加了更多迁移),发现迁移B包含错误,并且删除了重要数据,因此我们无法将其与master合并。

是否有任何干净的方式来编辑迁移20141208235304_delete_data_from_b?我知道我可以重新进行重新编辑,编辑和迁移,但是在我将更改提交给开发分支后,它将如何为其他开发人员工作?

1 个答案:

答案 0 :(得分:1)

如果迁移是可恢复的(这意味着它不会破坏重要数据),那么您只需添加新迁移即可解决问题。

否则,如果您发现其中一个迁移导致了任何问题,那么唯一可行的解​​决方案是在迁移生产之前修复迁移。在这种情况下,修复迁移,但是在本地应用此类迁移的人必须:

  1. 完全重新加载架构(rake db:schema:load)或
  2. 恢复该迁移(rake db:migrate:redo VERSION = 20141208235304)
  3. 还有一条建议。迁移旨在更改数据库架构,而不是删除/插入或操作数据。为此,您应该使用rake任务。