在我的项目中,我进行了以下迁移:
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
?我知道我可以重新进行重新编辑,编辑和迁移,但是在我将更改提交给开发分支后,它将如何为其他开发人员工作?
答案 0 :(得分:1)
如果迁移是可恢复的(这意味着它不会破坏重要数据),那么您只需添加新迁移即可解决问题。
否则,如果您发现其中一个迁移导致了任何问题,那么唯一可行的解决方案是在迁移生产之前修复迁移。在这种情况下,修复迁移,但是在本地应用此类迁移的人必须:
rake db:schema:load
)或rake db:migrate:redo
VERSION = 20141208235304)还有一条建议。迁移旨在更改数据库架构,而不是删除/插入或操作数据。为此,您应该使用rake任务。