如何在持续交付中为WordPress执行高级数据库合并?

时间:2019-04-24 作者:Johnny97

我有点问题。我目前正在尝试实现一个WordPress开发过程,涉及我的一个老问题/主题:

https://stackoverflow.com/questions/48890019/wordpress-development-process

所以现在我GitLab 已安装(对于小型项目来说,这是一个免费的好解决方案)。在GitLab上,我有3个分支:prod, staging, develop.

关于这3个分支,我有3个WordPress实例正在运行。

在我需要做一个plugin update. 问题是,我只想更新develop 未来的实例。因此,当我进行更新时,我可以将所有更新文件推送到git。但有一个巨大的问题——数据库。

我试图做一些研究,以找出是否有任何工具可以使我的数据库像GIT一样工作,但我找不到任何开源工具,似乎足以处理这项任务。这有一个插件,但我不想使用插件。

因此,我希望在WordPress中有更好的解决方案来执行这样的连续交付过程:

enter image description here

有没有人在WordPress中有过这种过程的经验?如果是,您如何处理这一问题,以便在开发和更新WordPress时完全安全?

我非常感谢我能得到的任何想法/帮助/经验!

1 个回复
SO网友:MikeNGarrett

有开源解决方案可以迁移数据库更改和WordPress配置(WPCFM) 按照您描述的方式,但我将通过在一个简单场景中深入了解最常见的实践来回答这个问题。

更新插件让我们假设所有3个环境都是相同的,但生产数据库中有新内容。您的dev和stage环境数据库可能有点落后,但除了新内容之外,基本上是相同的。

First, always make sure you back up your database before starting this process.

1。提交插件更新

在git中跟踪这些更改时,更新可能需要进行相关的数据库更新。好的插件通过检查当前数据库模式来处理这一问题,然后在必要时要求用户进行数据库更改。

2。将生产数据库复制到临时数据库,确保在此过程中更改数据库中的URL和协议(如有必要)。

3。将插件更新推送到暂存(staging)

现在您有了一个生产数据库的副本,其中包含来自dev的文件更新和来自prod的最新内容。这允许您在继续之前在此环境中测试更新过程。

4。部署实时

现在您已经在生产拷贝上进行了测试,您可以实时部署更改并以低风险复制任何必要的数据库更改。

另一种方法是,您可以在测试转移时冻结数据库更改。这将允许您同时部署数据库和文件。这通常是不可行的,因为在繁忙的站点上随时都可能发生数据库更改。这不是我的建议,但在某些情况下可能是必要的。

其他资源当然不会相信我的话。多做些研究,找出最适合你的方法。例如,看看Pantheon\'s deployment process.

相关推荐

Show content from database

这是我在Wordpress StackExchange上的第一篇帖子,所以请温柔一点。我在WordPress工作了一段时间,但更多的是作为前端开发人员,而不是太多的后端开发人员。我有在Joomla工作的背景(不要对我不利……)我正在从事一个当前的项目,其中一个API正在将数据注入数据库,WordPress网站有权访问的内容(尚未决定是WordPress数据库还是外部数据库。数据基于艺术品,因此各种数据与每件艺术品相关,还需要搜索/筛选选项来查看数据库中的各种数据。我的问题是,我如何获取数据以显示在网站前端