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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我是WordPress设计人员/开发人员,他越来越多地参与到使用版本控制中,特别是Git,尽管我确实在一些项目中使用了SVN。我目前正在使用Bean秸秆作为我的远程回购。

添加所有WordPress文件到我的回购不是问题,如果我想我知道我可以。gitignore的wp-config文件,但由于我是目前唯一的开发人员,而且这些项目是封闭的,这真的没有什么意义。

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

这样做有什么公认的做法吗?

提问于
用户回答回答于

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

mysqldump是一个合适的程序来帮助您这样做。但这并不完美。如果有什么东西干扰了项的序列化顺序(例如,由于创建新表等),则人工中断将进入差异。这将降低存储效率。可以编写一个自定义序列化器来序列化更改--但是,正在做git已经擅长的艰苦工作。只需使用SQL转储即可。

话虽如此,你想要做的并不是开发人员在谈论将数据库放入git时通常所指的意思。可能会有其他脚本,比如那些用干净状态填充数据库数据或用测试数据填充数据库数据的脚本。所有这些SQL脚本都是文本文件,格式与从mysqldump获得的SQL转储格式基本相同。所以,你没有理由不能用日常数据来做这件事。

用户回答回答于

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

扫码关注云+社区