Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL数据库上使用版本控制(Git)_Mysql_Git_Version Control - Fatal编程技术网

在MySQL数据库上使用版本控制(Git)

在MySQL数据库上使用版本控制(Git),mysql,git,version-control,Mysql,Git,Version Control,我是一名WordPress设计师/开发人员,越来越多地参与到版本控制的使用中,尤其是Git,尽管我确实在一些项目中使用SVN。我目前正在使用Beanstalk进行远程回购 将所有WordPress文件添加到我的repo中是没有问题的,如果我想知道的话,我可以忽略wp配置文件,但是由于我是目前唯一的开发人员,而且这些项目都是封闭源代码的,这真的没有什么意义 WordPress和任何CMS一样,严重依赖数据库来保存文本内容,许多设置取决于我使用的特定插件/主题配置。我想知道在数据库上使用版本控制的最

我是一名WordPress设计师/开发人员,越来越多地参与到版本控制的使用中,尤其是Git,尽管我确实在一些项目中使用SVN。我目前正在使用Beanstalk进行远程回购

将所有WordPress文件添加到我的repo中是没有问题的,如果我想知道的话,我可以忽略wp配置文件,但是由于我是目前唯一的开发人员,而且这些项目都是封闭源代码的,这真的没有什么意义

WordPress和任何CMS一样,严重依赖数据库来保存文本内容,许多设置取决于我使用的特定插件/主题配置。我想知道在数据库上使用版本控制的最佳方式是什么,如果可能的话。我想我可以做一个SQL转储,尽管我的MySQL服务器在Windows上运行(读作:我不知道如何做),然后将SQL转储添加到我的存储库中。但是,当我推动一些活动时,这会造成巨大的安全威胁


有一种公认的做法吗?

您可以在git存储库中备份数据库。当然,如果您将数据以二进制形式放入git中,您将失去git使用diff(更改)高效存储数据的所有能力。因此,首要的最佳实践是:以文本序列化格式存储数据

mysqldump是一个合适的程序来帮助您实现这一点。但它并不完美。如果有任何东西干扰了项目的序列化顺序(例如,由于创建新表等),则会出现人为中断,从而降低存储效率。您可以编写一个定制的序列化程序来序列化更改,但这样您就完成了git已经擅长的艰苦工作。只需使用sql转储即可


也就是说,当开发人员谈论将数据库放在git中时,您想要做的并不是他们通常的意思。例如,如果您阅读@eggyal()发布的链接,您将看到git中实际放置的是生成初始数据库所需的脚本。可能还有其他脚本,比如用干净状态填充数据库数据,或者用测试数据填充数据库数据。所有这些sql脚本都是文本文件,格式与从mysqldump获得的sql转储几乎相同。因此,您没有理由不能以这种方式处理日常数据。

您可以在git存储库中备份数据库。当然,如果您将数据以二进制形式放入git中,您将失去git使用diff(更改)高效存储数据的所有能力。因此,首要的最佳实践是:以文本序列化格式存储数据

mysqldump是一个合适的程序来帮助您实现这一点。但它并不完美。如果有任何东西干扰了项目的序列化顺序(例如,由于创建新表等),则会出现人为中断,从而降低存储效率。您可以编写一个定制的序列化程序来序列化更改,但这样您就完成了git已经擅长的艰苦工作。只需使用sql转储即可

也就是说,当开发人员谈论将数据库放在git中时,您想要做的并不是他们通常的意思。例如,如果您阅读@eggyal()发布的链接,您将看到git中实际放置的是生成初始数据库所需的脚本。可能还有其他脚本,比如用干净状态填充数据库数据,或者用测试数据填充数据库数据。所有这些sql脚本都是文本文件,格式与从mysqldump获得的sql转储几乎相同。因此,您没有理由不能以这种方式处理日常数据。

这篇文章给出了如何使用Mercurial在WordPress博客的两个实例(开发、生产)之间自动同步的建议。Is提到,对于这个场景,Git和Mercurial非常相似

第4步(同步数据库)在这里很有趣

数据库内容将导出到版本控制跟踪的文件中。每次拉取更改时,数据库内容都将被此文件替换,使数据库保持最新状态

然后,详细介绍了冲突和作业的脚本部分

如果你不熟悉的话,这里有一个建议。

这篇文章给出了如何使用Mercurial在WordPress博客的两个实例(开发、生产)之间自动同步的建议。Is提到,对于这个场景,Git和Mercurial非常相似

第4步(同步数据库)在这里很有趣

数据库内容将导出到版本控制跟踪的文件中。每次拉取更改时,数据库内容都将被此文件替换,使数据库保持最新状态

然后,详细介绍了冲突和作业的脚本部分


如果您不熟悉的话,这里有一个新的版本控制数据库。

像MySQL和MongoDB这样的版本控制数据库可用的软件不多


但其中一个正在开发中,测试版即将推出。查看

版本控制数据库(如MySQL和MongoDB)可用的软件不多


但其中一个正在开发中,测试版即将推出。查看

注意Wordpress将所有新闻提要内容存储在数据库中,因此即使您不做任何更改,也会有大量更改内容。

注意Wordpress将所有新闻提要内容存储在数据库中,因此即使您不做任何更改,将会有很多内容发生变化。

如果您只对版本控制下的架构变化感兴趣,那么有一个很好的方法。它将模式提取到可以放在git下的项目文件中。

如果您只对版本控制下的模式更改感兴趣,那么有一个很好的方法。信息技术