我加入了一个已经持续了两个月的铁路项目。我看到开发人员正在修改现有的迁移以更改列类型/名称?当我运行迁移时没有任何反应,我得到随机错误,例如找不到方法。当我deubug并检查数据库时,发现字段名称不同,这就是错误的原因。
根据我对数据库每次修改的理解,我们需要创建新的迁移。
修改现有迁移的行为是否可以接受?
答案 0 :(得分:4)
通常,一旦您签入迁移,就不应该修改它。对于我参与的一个项目,我们定期重置数据库,因此人们会不时修改迁移而不是创建新的迁移,但这不是我喜欢的做法。
因此,如果您希望默认的Rails迁移行为起作用,请不要更改某人可能已使用过的迁移。但是,如果你可以解决默认行为,那没关系。注意:如果您在生产中运行迁移以使数据库保持最新,那么您永远不要更改已在生产中运行的迁移!
答案 1 :(得分:0)
一切都是关于好的风格。当然你可以改变迁移,但这是糟糕的风格。根据指南,您应该为每次更改进行新的迁移。
答案 2 :(得分:0)
在我看来,这是不可接受的。以下是一些原因,何时以及为何可以接受或不接受:
所以我认为你很难改变别人的行为。祝你好运!