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

将MySQL数据库置于版本控制之下?

皇甫浩壤
2023-03-14
问题内容

我目前在我的PHP项目中使用SVN。我当时想我也应该使数据库处于版本控制之下,但是最好的方法是什么?我是否只是在SVN中的项目中制作了一个数据库文件夹,将SQL更改粘贴到名为from_1.0_to_2.0.sql的文件中并提交?


问题答案:

每当您对数据库进行更改时,都应将这些更改保存在迁移中,以便以后可以在更新代码的同时在其他服务器上运行。但是您基本上有了正确的想法。您可以编写一些工具来使其自动化。例如,对每个文件进行版本控制,然后migration_version在数据库中创建一个表,该表将包含数据库的当前版本。然后,您可以创建一个迁移脚本,该脚本将运行获取最新数据库所需的所有迁移。

请注意,如果要进行双向数据库版本控制(以便也可以还原到以前的数据库版本),则还需要针对每个版本为此编写必需的查询。

还有一些工具可以帮助您编写迁移,例如MySQLdiff



 类似资料:
  • 问题内容: 我是一名WordPress设计人员/开发人员,尽管在某些项目中确实使用SVN,但他越来越多地参与使用版本控制,尤其是Git。我当前正在将Beanstalk用于我的远程仓库。 将所有WordPress文件添加到我的仓库中都没问题,如果我想知道可以.gitignore wp- config文件,但是由于我是目前唯一的开发人员,而且这些项目都是封闭源代码,所以的确一点意义。 就像任何CMS一

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

  • 几乎所有项目[61],都要使用版本控制,它究竟有什么优势呢? 时间机器 假设你使用的编辑器,不支持删除,那你就得特别的谨小慎微,甚至是如履薄冰:因为你打错了字没法删除 放松下来,目前我所接触的所有编译器中,还没有变态到这种程度的。 如果编译器提供了删除功能,却没有 undo,那可能会更可怕:如果你不小心选中了全部文字,手一抖……因为不能 undo,你知道,如果此时不小心按下 delete,你就得从

  • 什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它你就

  • 问题内容: 我是否应该将项目文件(如Eclipse的.project,.classpath,.settings)置于版本控制下(例如Subversion,GitHub,CVS,Mercurial等)? 问题答案: 您确实希望保持任何可移植设置文件的版本控制, 这意味着: 其中没有绝对路径的任何文件。 包括: 我的经验法则: 您必须能够将项目加载到工作区中,并具有在IDE中正确设置它并在几分钟之内进