在操作系统上:Ubuntu 12.04
我的服务器上有一个 drupal 部署(实时网站)和一个登台环境(测试网站)。每次我从暂存网站中提取更改时,我都想自动同步数据库,如下所示:http: //ben.kulbertis.org/2011/10/synchronizing-a-mysql-database-with-git-and-git -钩子/
我使用的设置完全相同(当然,设置和路径根据我的设置)。
引自网站:
让我们从预提交开始。预提交挂钩将在执行提交之前直接运行脚本。要编辑您的预提交挂钩:
[your editor] /path/to/your/repo/.git/hooks/pre-commit
现在,让我们编写预提交脚本。我们将告诉系统将我们的 MySQL 数据库转储到我们的 git 存储库并添加它以提交。
#!/bin/sh mysqldump -u [mysql user] -p[mysql password] --skip-extended-insert [database] > /path/to> /your/repo/[database].sql cd /path/to/your/repo git add [database].sql
现在,让我们编写合并后脚本。我们将告诉系统将 MySQL 转储恢复到本地数据库以获取最新更改。使用以下命令编辑合并后挂钩:
[your editor] /path/to/your/repo/.git/hooks/post-merge
和写:
#!/bin/sh mysql -u [mysql user] -p[mysql password] [database] < /path/to/your/repo/[database].sql
但是当我先提交然后再拉时,似乎什么都没有发生。post-merge 和 pre-commit 挂钩位于部署存储库的 hooks 目录中,我从中执行提交和拉取。两者都有执行权:chmod +x /path/to/hook
我已经测试了我放在钩子中的命令。他们应该正常工作。
有什么办法可以调试出什么问题?