当前位置: 首页 > 面试题库 >

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

时宾实
2023-03-14
问题内容

我是一名WordPress设计人员/开发人员,尽管在某些项目中确实使用SVN,但他越来越多地参与使用版本控制,尤其是Git。我当前正在将Beanstalk用于我的远程仓库。

将所有WordPress文件添加到我的仓库中都没问题,如果我想知道可以.gitignore wp-
config文件,但是由于我是目前唯一的开发人员,而且这些项目都是封闭源代码,所以的确一点意义。

就像任何CMS一样,WordPress高度依赖数据库来保留文本内容以及许多设置,具体取决于我使用的特定插件/主题配置。我想知道,即使有可能,在数据库上使用版本控制的最佳方法是什么。我想我可以执行SQL转储,尽管我的MySQL服务器在Windows上运行(读为:我不知道如何做),然后将SQL转储添加到我的存储库中。但是,当我实时发布某些内容时,会带来巨大的安全威胁。

有接受的做法吗?


问题答案:

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

mysqldump是一个合适的程序,可以帮助您执行此操作。虽然这不是完美的。如果有什么干扰项目的序列化顺序(例如,由于创建新表等),则人为的中断将进入差异。这将降低存储效率。您可以编写一个自定义的序列化程序来仅序列化更改-
但是,您正在做git已经很擅长的艰苦工作。只需使用sql dump。

话虽这么说,但您所要做的并不是开发人员在谈论将数据库放入git时通常的含义。例如,如果您阅读@eggyal发布的链接(指向
encodinghorror的链接),您将看到git中实际放置的是生成初始数据库所需的脚本。可能还有其他脚本,例如使用干净状态填充数据库数据或使用测试数据填充脚本的脚本。所有这些sql脚本都是文本文件,几乎与从mysqldump获得的sql
dump格式相同。因此,没有理由您也无法对日常数据进行同样的处理。



 类似资料:
  • 问题内容: 我目前在我的PHP项目中使用SVN。我当时想我也应该使数据库处于版本控制之下,但是最好的方法是什么?我是否只是在SVN中的项目中制作了一个数据库文件夹,将SQL更改粘贴到名为from_1.0_to_2.0.sql的文件中并提交? 问题答案: 每当您对数据库进行更改时,都应将这些更改保存在迁移中,以便以后可以在更新代码的同时在其他服务器上运行。但是您基本上有了正确的想法。您可以编写一些工

  • 问题内容: 想知道是否可以对MySQL数据库进行版本控制。 我知道这个问题之前已经有人提出过,但是最新的问题是在一年之前,而且事情以变化的速度… 问题来了,每个开发人员在自己的计算机上都具有apache / MySQL / PHP,有时他们会在该计算机上编辑数据库。如果他们必须向所有其他开发人员发送电子邮件,然后手动编辑测试服务器数据库,则相当不便。 您如何处理这个问题? 谢谢 问题答案: 这本身

  • Unix was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. — Doug Gwyn 你曾经遇到过误删除了某些文件而又希望恢复的情形吧? 本书中提及的最重要的技巧就是将 Puppet 的 配置清单(manifests)纳入像

  • 问题内容: 我有一个在Java堆栈(Struts 2 + Spring + Hibernate)上运行的Web应用程序,并在MySQL中保持不变。我查看了NoSQL数据库,它们肯定比RDBMS更容易推理和使用。这是一个音乐流应用程序,用于存储艺术家信息并允许用户保存播放列表。 我想知道切换到NoSQL DB(CouchDB,MongoDB,Cassandra)是否有任何优势(性能,硬件成本,简化代

  • 问题内容: 我同时使用了Hibernate批注和Sybase。我正在寻找设置版本列以防止锁定。数据库需要管理时间戳而不是应用程序。我想使用注释而不是hbm.xml来完成此操作。 我已经尝试了以下方法,但没有成功, 我在jboss.org上阅读以使用 但是我收到数据库的IDE编译错误,“找不到符号符号:类数据库位置:类SourceType” 以及rowVersion的编译错误, 版本字段或属性不是受

  • 我们已经开发了一个可以运行的 Rails 应用,接下来要花点时间来做一件事。虽然这件事不是必须的,但是经验丰富的软件开发者都认为这是最基本的事情,即把应用的源代码纳入版本控制。版本控制系统可以跟踪项目中代码的变化,便于和他人协作,如果出现问题(例如不小心删除了文件)还可以回滚到以前的版本。每个专业级软件开发者都应该学习使用版本控制系统。 版本控制系统种类很多,Rails 社区基本都使用 Git。G