php - 管理 wordpress 环境

标签 php database wordpress deployment

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

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

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

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

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

我想到了一些解决方案:

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

我可以手动安装插件,但这很容易出错。 我们遇到过几种情况,其中代码相同,但站点由于一些简单的错误配置而运行不同。

  • 导出整个数据库:

    • 导出生产数据库并导入到开发。
    • 在开发上安装插件。
    • 将开发人员迁移到生产环境。

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

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

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

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

  • 使用 selenium IDE 记录配置更改:

然后我可以将测试套件导出到 python 并使用更改后的主机地址重播。它可以工作,但它看起来更像是解决方法,然后是解决方案。

  • 修改所有插件,使它们由 php 文件配置:

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

你能告诉我,你如何通过数据库更改来自动化 wordpress 部署吗?


关于 SO 有几个类似的问题:

Managing Wordpress blog on development and live environment

Wordpress Dev Environment Migration

但这些都是相当基本的问题,它们不能解决我的问题。

最佳答案

您尝试过使用 WP Migrate DB Pro 吗? 我使用这个插件进行数据库传输。

关于php - 管理 wordpress 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15724049/

相关文章:

php - 如何使用 PHP 转换规范化数据集?

javascript - 表单提交,无需跳转到目标页面

javascript - 当用户复制和粘贴文本在 WordPress 中不起作用时链接回网站

javascript - 如何从数组中获取不同的值?

通过 IMAP 读取带附件的电子邮件的 PHP 类

sql - 为什么 like-operator 这么快

mysql - 我无法将 myISAM 转换为 innodb

php - 如何使用php将记录插入sql数据库上的多对多关系表?

javascript - 如何在 WooCommerce 表单中禁用自动对焦?

php - 不要在 WooCommerce 中显示通知的 Web 服务失败响应中保存订单