繁体   English   中英

在Git Push和Pull上导出和导入数据库

[英]Export and import database on Git push and pull

我需要数据库在两台本地计算机之间同步,而不必在两台本地计算机之间使用服务器。 经过研究后,我认为我可以使用Git挂钩为我完成任务。

我基本上想要的是在git push上运行mysqldump (并将SQL文件添加到提交中),而在git pull上运行mysqlimport往返于远程存储库。

我找不到为此的任何特定挂钩。 我尝试了pre-commit挂接,但这没有在当前提交中添加SQL文件。 然后,我尝试了prepare-commit ,但是没有运气。

有人对此有答案吗?

Ben Kulbertis的此解决方案使用pre-commit和post-merge git钩子来完成这项工作。 奇迹般有效!

http://ben.kulbertis.org/2011/10/synchronizing-a-mysql-database-with-git-and-git-hooks/

我会为您的系统写一个包装器,也许是“ commit.php”或“ git-ci.sh”之类的东西。 然后,您可以使用bash或perl或python或php或任何您喜欢的东西,并逐个运行每个命令,最后完成提交。

我在尝试添加到正在运行的预提交挂钩的提交中遇到类似问题后,建议这样做。 另外,在下游侧没有“推”或“拉”钩(我使用中央存储库,因此如果您有两台机器相互推拉,这可能会起作用)。

我在一个网站上有一个双向部署脚本,在其中我有一个很长的预提交脚本,但是在Web服务器上,我有一个像这样的包装程序,该包装程序可以提取,检查提交,输出报告并为我提供关于是否并与另一台服务器进行rsync同步等。它替换了可能会造成重大安全隐患的“拉”钩。

汉斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM