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

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

作者:互联网

我是一名WordPress设计师/开发人员,他越来越多地参与使用版本控制,尤其是Git,尽管我在某些项目中使用了SVN.我目前正在使用Beanstalk作为我的远程仓库.

将所有WordPress文件添加到我的仓库是没有问题的,如果我想知道我可以.gitignore wp-config文件,但由于我是目前唯一的开发人员,而且这些项目是封闭源代码,它确实使得没什么感觉.

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

有这样做的公认做法吗?

解决方法:

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

mysqldump是一个合适的程序来帮助你做到这一点.虽然它并不完美.如果有任何事情扰乱了项目的序列化顺序(例如,由于创建新表格等),那么人工中断将进入差异.这将降低存储效率.您可以编写一个自定义序列化程序来仅序列化更改 – 但是您正在进行git已经擅长的艰苦工作.只需使用sql转储.

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

标签:git,mysql,version-control
来源: https://codeday.me/bug/20190919/1813033.html