【问题标题】:When should you run migrations on a pull request?什么时候应该在拉取请求上运行迁移?
【发布时间】:2015-12-24 09:32:44
【问题描述】:

很抱歉提出这样一个菜鸟问题 - git 和 ruby​​ on rails 的新手。

我在一个学校编码团队中使用 Rails 编写应用程序。其中一个拉取请求上有一个新数据库,但尚未运行迁移 (rake db:migrate)。

我们应该先在分支上运行迁移然后合并到master还是合并到master然后在master分支上执行rake db:migrate?

【问题讨论】:

    标签: ruby-on-rails ruby database git migrate


    【解决方案1】:

    如果您正在检查某人的工作(即,这不是您的拉取请求,但他们说它已经准备好并且合并是您的工作),那么您应该检查分支并测试迁移是否正常,因为如果您合并它要掌握(并推送它,以便每个人都可以得到更新)并且迁移不正常,那么每个人都会因为 master 分支损坏而感到沮丧。

    这就是为什么我建议检查分支,运行迁移,然后将 PR 合并到 master 并将其推送到上游。


    如果这是您的拉取请求并且您确定一切都很好(或者您独自处理项目),那么没有特定的顺序:只要确保您不要忘记所有步骤(合并和迁移)。

    当我自己做时,我通常已经应用了迁移(因为我的分支中的工作需要它们),所以通常只是去掌握并合并分支的情况。

    【讨论】:

      【解决方案2】:

      最好的做法是:

      1. 运行rake db:migrate
      2. 承诺回购

      因为db:migrate 修改了您的db/schema.rb 文件,该文件显示了数据库的“当前”状态。在您的存储库中拥有此文件的最新版本非常重要。

      还要注意db/schema.rb中的评论:

      # It's strongly recommended to check this file into your version control system.
      

      因此上面推荐的顺序。

      【讨论】:

        【解决方案3】:

        您应该始终在合并到 master 之前运行您的迁移,因为您会想知道该代码是否正常工作以及一切正常。请记住,运行迁移会更改您的 db/schema.rb 文件,如果出现错误,服务器将无法正常启动或出现故障。

        至于是否在提交到分支之前运行迁移,这取决于你在做什么。如果您是团队编码人员并且需要先审核工作,请继续提交,以便其他人可以查看分支并进行审核。

        【讨论】:

          【解决方案4】:

          为什么有人会在具有尚未运行的新迁移的分支上打开拉取请求?拉取请求的作者如何知道迁移是正确编写的?

          如果我正在查看拉取请求,我希望在将分支合并到 master 之前运行迁移。此外,请确保您的 schema.rb 正在与迁移一起签入。

          【讨论】:

          • 是的,这是我们团队的一个争论点。这样做的人认为最好在 master 分支上运行 rake db:migrate 以确保没有数据库错误。由于你所说的原因,这对我来说没有意义。
          猜你喜欢
          • 2019-10-25
          • 2011-05-02
          • 1970-01-01
          • 2023-03-08
          • 1970-01-01
          • 1970-01-01
          • 2021-11-01
          • 2015-03-30
          • 1970-01-01
          相关资源
          最近更新 更多