Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 修改迁移是否可以接受_Ruby On Rails - Fatal编程技术网

Ruby on rails 修改迁移是否可以接受

Ruby on rails 修改迁移是否可以接受,ruby-on-rails,Ruby On Rails,我参加了一个rails项目,该项目已经进行了两个月。我看到开发人员正在修改现有迁移以更改列类型/名称?当我运行迁移时,什么都没有发生,我会得到随机错误,比如,methodnotfound。当我检查数据库时,发现字段名不同,这就是出现错误的原因 根据我对数据库每次修改的理解,我们需要创建新的迁移 这种修改现有迁移的行为可以接受吗?通常,一旦签入迁移,就不应该修改它。对于我参与的一个项目,我们定期重置数据库,因此人们会不时修改迁移,而不是创建新的迁移,但这不是我喜欢的做法 因此,如果您希望默认的Ra

我参加了一个rails项目,该项目已经进行了两个月。我看到开发人员正在修改现有迁移以更改列类型/名称?当我运行迁移时,什么都没有发生,我会得到随机错误,比如,methodnotfound。当我检查数据库时,发现字段名不同,这就是出现错误的原因

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


这种修改现有迁移的行为可以接受吗?

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


因此,如果您希望默认的Rails迁移行为正常工作,不,不要更改可能有人已经使用过的迁移。但是,如果您对默认行为的处理没有意见,那也没关系。注意:如果要在生产环境中运行迁移以使数据库保持最新状态,请务必不要更改已在生产环境中运行的迁移

都是关于好的风格。当然,您可以更改迁移,但这种方式不好。根据指南,您应该为每次更改进行新迁移。

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

  • 我只为自己开发2个rails应用程序,我是唯一的开发人员。当我在迁移中出错时,我有时只是修复它,回滚迁移,并在修复错误后重新进行迁移。这只是因为
    • 我知道我是唯一的一个
    • 我在错误的改变之后马上做
    • 我知道如何以及何时首先回滚,然后重新执行
  • 在所有其他情况下,不可接受:
    • 不止一个开发者
    • 集成的版本控制系统,如Subversion,Git
    • 在不同的房间甚至地点进行独立开发
所以我认为你很难改变别人的行为。祝你好运