管理wordpress环境


Managing wordpress environments

我有一个小团队(4个开发人员),我们创建了一个网站,目前有500个用户。

我们的开发周期是这样的:

  1. 我们在本地主机上进行更改(安装插件或自定义代码)。
  2. 我们将其推送到开发环境。我们可以做压力测试,我们有几个测试用户等等。
  3. 我们评估它。
  4. 我们将其推向生产。

部署新代码就像git pull一样简单,但真正的问题是数据库。

几乎所有的插件都需要我在管理面板中点击一些东西。更重要的是:当我安装它们时,其中一些会创建新表或更新现有表。例如,为每个用户添加一些新的用户元数据。

我想到了一些解决方案:

  • 所有环境下手动安装插件:

我可以手动安装插件,但这很容易出错。我们遇到过一些情况,代码是一样的,但是由于一些简单的错误配置,网站的工作方式不同。

  • 导出整个数据库:

    • 导出生产数据库并导入到dev.
  • 在dev上安装插件
  • 迁移到生产环境

它有一个真正的问题——它不是原子的。如果用户创建了一个帖子,而我在dev上安装插件-它消失了。

  • 从数据库更改创建脚本:

当我通过MySQL二进制日志安装插件时,我可以记录wordpress做了什么。

问题是,可以在一个数据库查询中获得所有用户,然后使用id在另一个数据库查询中添加一些元数据。这意味着,二进制日志记录了一堆id的查询。如果在进程中注册了新用户-它将消失。

  • 用selenium IDE记录配置更改:
然后我可以将测试套件导出到python,并在更改主机地址的情况下重播。它可以工作,但它看起来更像是一个变通,然后是一个解决方案。
  • 修改所有的插件,使他们是由php文件配置:

这似乎是合法的,但可能会产生相当多的工作。

你能告诉我,你是如何自动部署数据库的吗?


在SO上有几个类似的问题:

管理Wordpress博客的开发和运行环境

Wordpress Dev Environment Migration

您尝试过使用WP Migrate DB Pro吗?我使用这个插件db传输。