首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL数据库上使用版本控制(Git)

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

Stack Overflow用户
提问于 2012-11-28 23:35:55
回答 4查看 52.5K关注 0票数 64

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

将所有的配置文件添加到我的存储库是没有问题的,如果我想的话,我知道我可以.gitignore wp- WordPress文件,但由于我是目前唯一的开发人员,并且这些项目是封闭的源代码,这真的没有什么意义。

与任何内容管理系统一样,WordPress在很大程度上依赖于数据库来保存文本内容和许多设置,这取决于我使用的特定插件/主题配置。我想知道在数据库上使用版本控制的最好方法是什么,如果可能的话。我想我可以做一个SQL dump,尽管我的MySQL服务器是在Windows上运行的(读作:我不知道怎么做),然后将SQL dump添加到我的存储库中。但是当我推送一些东西时,就会带来巨大的安全威胁。

有没有一种被接受的做法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-04 02:42:13

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

mysqldump是一个合适的程序来帮助您做到这一点。不过,它并不完美。如果有任何东西扰乱了项目的序列化顺序(例如,作为创建新表等的结果)然后,人工中断将进入diff。这将降低存储效率。您可以编写一个定制的序列化程序来序列化更改--但是这样做就完成了git已经擅长的繁重工作。只要使用sql转储即可。

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

票数 21
EN

Stack Overflow用户

发布于 2014-07-13 11:18:45

对于MySQL和MongoDB这样的版本控制数据库,可用的软件并不多。

但其中一个正在开发中,测试版即将推出。查看Klonio - Version Control for databases

票数 9
EN

Stack Overflow用户

发布于 2021-05-12 01:25:52

如果您只对版本控制下的模式更改感兴趣,有一个很好的工具SqlRog。它将模式提取到可以放在git下的项目文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13608706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档