我需要我的数据库在两台本地计算机之间同步,而不需要在它们之间使用服务器。经过一些研究,我认为我可以使用Git钩子为我完成任务。
我基本上想要的是在mysqldump
上运行git push
(并将SQL文件添加到提交中)和mysqlimport
上的git pull
与远程存储库之间的运行。
我找不到任何特定的钩子。我尝试了pre-commit
钩子,但这并未在当前提交中添加SQL文件。然后我尝试了prepare-commit
,但没有运气。
有没有人得到这个答案?
答案 0 :(得分:2)
我会为你的系统编写一个包装器,可能是“commit.php”或“git-ci.sh”之类的东西。然后你可以使用bash或perl或python或php或任何你熟悉的东西,逐个运行每个命令,完成提交。
在尝试添加提交前运行预提交挂钩时遇到类似问题,我建议这样做。此外,下游侧没有“推”或“拉”挂钩(我使用中央存储库,因此如果您有两台机器相互推拉,则可能会有效。)
我有一个双面部署脚本用于我的一个网站,我有一个很长的预提交脚本但是在Web服务器上我有一个这样的包装器取出,然后检查提交,输出报告并给我有关是否与其他服务器合并和rsync等的选项。它取代了可能是主要安全隐患的“拉”钩。
汉斯
答案 1 :(得分:2)
Ben Kulbertis的这个解决方案使用预提交和合并后的git钩子来完成这项工作。像魅力一样工作!
http://ben.kulbertis.org/2011/10/synchronizing-a-mysql-database-with-git-and-git-hooks/