0

我想每个人都有这个问题。当您的同事创建迁移并且您忘记在git pull之后运行它时。据我了解,这可以通过结帐后的git hook 来完成。有现成的解决方案吗?

如果没有,请建议如何进行此检查。简单的解决方案是在 git hook 中运行 rake db:abort_if_pending_migrations,但它会太慢。

4

2 回答 2

4

我已经用 ruby​​ 代码做了一个要点来检查。在 post-merge 和 post-checkout 钩子上执行它很有用。

主要思想是将当前头部与以前的头部状态(HEAD@{1},这是 git pull 之前的状态)进行比较,并搜索 db/migrate 文件夹中是否有任何更改。

感谢 Shadwell 找到了我分叉的几乎可行的解决方案。

于 2013-08-06T10:37:43.453 回答
1

我发现这篇文章有一个 ruby​​ 脚本和运行它的步骤。看起来它会做你想做的事,并且也可以选择运行迁移。它通过检查 db/migrate 文件夹中的更改来实现。它作为合并后的钩子来完成。

于 2013-07-31T10:16:32.757 回答