Ruby on rails 提交schema.rb的正确方法

Ruby on rails 提交schema.rb的正确方法,ruby-on-rails,ruby,ruby-on-rails-3,git,Ruby On Rails,Ruby,Ruby On Rails 3,Git,普遍的共识是,迁移时应该将schema.rb检查到版本控制中 我的问题是,如果我的高级开发人员创建了一个迁移并检查schema.rb,我会将repo拉下来并在我的端进行迁移,它显示schema.rb已被更改-我是否也会提交schema.rb的版本并将其检查到版本控制中?理论上,迁移之后,您的schema.rb应该与高级开发人员提交的模式相同。如果不是,那么发生了两件事之一: 高级开发人员实际上忘记了提交schema.rb 迁移所做的更改不是由schema.rb以一致的方式记录的(迁移的许多创

普遍的共识是,迁移时应该将schema.rb检查到版本控制中


我的问题是,如果我的高级开发人员创建了一个迁移并检查schema.rb,我会将repo拉下来并在我的端进行迁移,它显示schema.rb已被更改-我是否也会提交schema.rb的版本并将其检查到版本控制中?

理论上,迁移之后,您的
schema.rb
应该与高级开发人员提交的模式相同。如果不是,那么发生了两件事之一:

  • 高级开发人员实际上忘记了提交
    schema.rb
  • 迁移所做的更改不是由
    schema.rb以一致的方式记录的(迁移的许多创造性使用可能导致这种情况,更不用说bug了)

您应该仔细检查高级开发人员在运行迁移后是否提交了
schema.rb
。如果他们有,您应该放弃对您的
schema.rb版本所做的更改,代之以他们的更改。如果他们没有,那么您应该提交您的
schema.rb版本,有效地纠正他们的错误。

是的,您应该签入您的
schema.rb版本。这将确保整个团队都在使用相同的版本。只要架构有新的更改,就应该进行合并。您对改变数据库的项目的贡献仍然是对产品的贡献,因此需要签入


合并的具体过程可能因团队而异。一些团队有一个QA团队来处理这些事情,其他团队有一个部署团队来处理这些事情。然而,在这种情况下,沟通是关键。尽量让您的高级开发人员了解您的架构更改。

我们通常将该承诺留给部署迁移的人来做——在部署时,迁移必须运行,这是
schema.rb的最正确版本。以前的签入可能会导致开发人员之间发生冲突,从而导致repo中的信息不正确