2011-12-13 129 views
2

我加入了一个过去两个月一直在进行的rails项目。我看到开发人员正在修改现有迁移以更改列类型/名称?当我运行迁移时,没有任何反应,并且出现像随机错误,找不到方法。当我解散并检查数据库时,发现字段名称不同,这就是错误出现的原因。是否可以修改迁移

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

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

回答

4

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

因此,如果您希望默认的Rails迁移行为正常工作,请不要更改某人可能已经使用的迁移。但是,如果您在解决默认行为方面没有问题,则无关紧要。注意:如果您正在运行生产迁移以使数据库保持最新状态,则永远不要更改已在生产环境中运行的迁移,这一点很重要!

0

这是所有关于良好的风格。当然,你可以改变迁移,但这是不好的风格。根据指导方针,您应该为每次更改都进行新的迁移。

0

在我看来这是不可接受的。这里有一些原因何时以及为什么它可以被接受或者也不是:

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

所以我觉得你有困难的工作去改变别人的行为。祝你好运!

相关问题