2011-06-05 65 views
0

开发时,我可以使用SVN或Git来保持代码在计算机之间同步。但是,我一直无法找到类似于MySQL的东西。有人知道任何事吗?保持MySQL模式在计算机之间同步

更新:我试图获取跨机器的架构更改。同时获取数据同步会很好,但目前并不重要。

+0

如同在保持数据库的多个副本(每台机器一个副本)同步?出于什么目的? – 2011-06-05 02:05:04

+1

您的优先级是什么:表架构或数据? – Gabriel 2011-06-05 02:07:33

+0

每次在开发过程中更新机器之间,不是不断地导出/导入机器之间的数据库,如果可以同步它们将会很好。架构是我所担心的一切;获得数据同步也是一种奖励。 – 2011-06-06 04:18:10

回答

4

数据不被视为您的“应用程序源”的一部分。模式(即表格,索引等的定义)应该被视为你的源代码的一部分,尽管很多人在涉及到MySQL时都不打扰。

如果您需要保持数据同步,您应该查看复制方案。

看到这个about replication为MySQL

0

除非你想使用复制(以前没有亲自用过MySQL),你最好使用某种脚本来执行mysqldump并每次提交备份。

你甚至可以用git钩子来做到这一点,让它自动将它转储出来并在推送前提交。

+0

这将是很好..会有办法让它自动更新接收/拉动? – 2011-06-06 04:26:39

0

MySQL复制是去这里的路。

请注意复制双方的数据,因为MySQL不提供同步复制(还)。

有一个全面的工具集来监视您的复制(以及更多)称为Maatkit。这使您可以比较数据的校验和,并在出现差异时进行同步。

0

https://github.com/reduardo7/db-version-updater

脚本,以保持数据库模型更新的优化版本,采用了简单的Linux脚本。

该脚本创建一个辅助数据库表来注册执行的脚本,并阻止执行任何已执行的脚本。

-

https://github.com/reduardo7/db-version-updater-mysql

保持数据库模型更新的优化版本,使用的是MySQL脚本。

使用此脚本,您可以保留数据库模型的版本,而不需要MySQL控制台以外的其他工具。

这是最简单和最简单的方式来执行此任务如此常见,而无需使用其他额外的工具。

工作时,创建一个辅助数据库表(database_version)来注册执行的脚本,并阻止执行任何已执行的脚本。

相关问题