使用Git跨多个开发人员保持WP数据库同步

时间:2012-05-20 作者:Philip Downer

我正在改进我的git工作流,因为它适用于我的WordPress开发项目。通常,在开发内容管理系统时,我会创建一个开发服务器(如http://dev.finalsitename.com) 包含将在生产版本中使用的自定义帖子类型和分类法。这允许我的客户开始向网站添加他们的内容。

在他们完成这项任务时,我通常会构建外观和感觉,以及将在本地主机环境中使用的自定义编程/插件。为了确保我不会覆盖他们的任何更新,我通常会下拉他们数据库的副本并替换我的。然而,有时我只需要跳进WP管理区域,更改设置或其他一些小的东西。。。

如果有多个开发人员在一个WordPress项目上工作,我们每个人都会对我们的站点版本进行(时间戳)数据库转储,并在提交本地分支并将其推回到远程存储库之前将其包含在根目录中。这种方法的问题是,数据库常常不同步,无法轻松确定要使用哪个数据库。

其他开发人员如何保持其数据库同步,同时仍允许多个开发人员(以及客户端/内容生产者)在同一项目上工作?

4 个回复
最合适的回答,由SO网友:Wyck 整理而成

最简单-->

只使用一个远程数据库,您可以通过大量备份连接到该数据库。这样,您只需担心文件,而不用担心数据库。

使用WordPress内置的导入和导出功能,并将其直接放入您的版本控制中的wp根目录中(就像在新文件夹中一样)。当然,这需要额外的几分钟,但非常简单,您可以将其自动化,但更重要的是,它将成为版本控制的一部分。

使用自定义更新脚本来设置实际数据库同步的版本。老实说,我不知道你怎么用git来管理它,因为它只是一个脚本,不知道发生了什么,我知道有第三方工具可以做到这一点,而且是免费的http://www.liquibase.org/).

SO网友:grosshat

如果您需要保持数据库完全同步,例如模式和数据,您可以基于备份开发一个自定义版本控制系统。

或者,如果您希望保留生产数据,但要改进其模式,则可以使用自定义解决方案(包含所有模式更改的版本化文件),或者使用基于以下概念的标准解决方案:migration. 您可以在stackoverflow线程中找到许多信息:Mechanisms for tracking db schema changes.

SO网友:Tom J Nowell

如果这看起来非常明显,我很抱歉,但如果您都需要具有相同结构的相同数据库副本,那么使用office/central SQL server并使用它是否有意义?如果需要进行实验,请在本地克隆它,但要将其作为授权事实标准,并备份该服务器,仅备份该服务器。

否则,当我在一个团队项目中工作时,我们会有自己的设置和不同的内容。代码负责升级和迁移表结构,我们可以通过局域网访问彼此在机器上运行的本地安装的代码,因此我们无需共享内容。

如果我们正在输入内容,我们可以在测试服务器上运行它,然后将其导出并导入到实时服务器,或者如果当前不存在实时实例,我们可以直接迁移到生产服务器上。

如果在任何时候需要分离实时测试和WIP数据,那么只需使用存储库中的实时、测试和开发分支即可

SO网友:Jake

对于那些认为上述解决方案不够简单的人来说,一个很棒的付费插件解决方案是WP Migrate DB Pro

它允许您在Wordpress实例之间推拉数据库。它仍然没有为您的数据库提供类似git的系统,但如果您有一个中央暂存服务器;“真相”;对于数据库和需要更改的地方,它的工作方式令人惊讶。

(Deprecated suggestion below - Thanks Elmar in comments)

或者你可以调查Version Press 它确实声称提供了类似git的文件和数据库管理。这个插件我还没有用过,但我已经看了一段时间了,它仍然存在。

结束

相关推荐

轻松跟踪远程Git Repo for WordPress更新

我正在寻找一种方法,使Wordpress的开发实例保持最新,并受Git的版本控制。是否有人做到了以下几点?将git设置为跟踪包含Wordpress核心文件的repo,通过子模块或类似模块将Wordpress repo添加到项目中,通过更新子模块(或任何内容)从项目中获取最新版本的WP,理想情况下,您只需更新一个存储库中的WP核心文件,然后使用单个git命令升级其他开发实例。任何人