是否可以修改迁移

时间:2011-12-13 06:21:40

标签: ruby-on-rails

我加入了一个已经持续了两个月的铁路项目。我看到开发人员正在修改现有的迁移以更改列类型/名称?当我运行迁移时没有任何反应,我得到随机错误,例如找不到方法。当我deubug并检查数据库时,发现字段名称不同,这就是错误的原因。

根据我对数据库每次修改的理解,我们需要创建新的迁移。

修改现有迁移的行为是否可以接受?

3 个答案:

答案 0 :(得分:4)

通常,一旦您签入迁移,就不应该修改它。对于我参与的一个项目,我们定期重置数据库,因此人们会不时修改迁移而不是创建新的迁移,但这不是我喜欢的做法。

因此,如果您希望默认的Rails迁移行为起作用,请不要更改某人可能已使用过的迁移。但是,如果你可以解决默认行为,那没关系。注意:如果您在生产中运行迁移以使数据库保持最新,那么您永远不要更改已在生产中运行的迁移!

答案 1 :(得分:0)

一切都是关于好的风格。当然你可以改变迁移,但这是糟糕的风格。根据指南,您应该为每次更改进行新的迁移。

答案 2 :(得分:0)

在我看来,这是不可接受的。以下是一些原因,何时以及为何可以接受或不接受:

  • 我正在为自己开发2个rails应用程序,我是唯一的开发人员。当我在迁移中出错时,我有时会修复它,回滚迁移并在修复错误后重做它。这只能起作用
    • 我知道我是唯一一个。
    • 我在错误的改变后立即行动
    • 我知道如何以及何时首先回滚然后重做它。
  • 在所有其他情况下,这是不可接受的:
    • 不止一位开发人员。
    • 由Subversion,Git等版本控制系统集成......
    • 在不同的房间甚至位置进行独立开发。

所以我认为你很难改变别人的行为。祝你好运!