我想每个人都有这个问题。当您的同事创建迁移并且您忘记在git pull之后运行它时。据我了解,这可以通过结帐后的git hook 来完成。有现成的解决方案吗?
如果没有,请建议如何进行此检查。简单的解决方案是在 git hook 中运行 rake db:abort_if_pending_migrations,但它会太慢。
我想每个人都有这个问题。当您的同事创建迁移并且您忘记在git pull之后运行它时。据我了解,这可以通过结帐后的git hook 来完成。有现成的解决方案吗?
如果没有,请建议如何进行此检查。简单的解决方案是在 git hook 中运行 rake db:abort_if_pending_migrations,但它会太慢。
我已经用 ruby 代码做了一个要点来检查。在 post-merge 和 post-checkout 钩子上执行它很有用。
主要思想是将当前头部与以前的头部状态(HEAD@{1},这是 git pull 之前的状态)进行比较,并搜索 db/migrate 文件夹中是否有任何更改。
感谢 Shadwell 找到了我分叉的几乎可行的解决方案。
我发现这篇文章有一个 ruby 脚本和运行它的步骤。看起来它会做你想做的事,并且也可以选择运行迁移。它通过检查 db/migrate 文件夹中的更改来实现。它作为合并后的钩子来完成。