我认为每个人都有这个问题。当您的同事创建迁移但您忘记在 git pull 之后运行它。据我了解,这可以通过 post-checkout git hook来完成。有现成的解决方案吗?
如果没有,建议如何进行此项检查。简单的解决方案是在git hook中运行rake db:abort_if_pending_migrations,但速度太慢。
答案 0 :(得分:4)
我已经完成了gist with ruby code检查。在合并后和结帐后挂钩执行它很有用。
主要思想是将当前头部与前一个头状态(HEAD @ {1},即git pull之前的状态)进行区分,并搜索db / migrate文件夹中是否有任何更改。
感谢Shadwell找到了我分叉的几乎可行的解决方案。
答案 1 :(得分:1)
我发现this post有一个ruby脚本,并且要遵循以使其运行的步骤。它看起来会像您想要的那样,并且可以选择性地运行迁移。它通过检查db / migrate文件夹中的更改来完成。它将它作为合并后挂钩。