php - 如何将 WordPress 内容从 Dev 部署到 Staging 到 Production 环境?
问题描述
我们继承了一个 WordPress 网站并设置了开发、登台和生产环境。通过将代码放在 Git 中,将代码更改部署到每个环境(例如,从 Dev 到 Staging)很容易做到。
但是,我们不确定如何对数据库中的 WordPress 内容和 wp-content/uploads 目录中的文件执行相同的操作。
我们希望使用我们的开发站点作为事实来源,在其中准备内容更改,然后将这些内容更改部署到暂存和生产,就像我们对代码所做的那样。
我们必须处理的一些情况:
- 仅将内容(而不是用户)从一个环境部署到另一个环境
- 能够在
wp_posts
表外实时部署更改。例如,如果我们在外观 > 菜单中更改菜单,则该菜单存储在 WordPress 数据库的其他位置。 - 确保任何硬编码的绝对 URL(例如,在图像、链接、小部件等中)未部署到硬编码域(例如 dev.mydomain.com)
是否有一种标准化的方法来处理 WordPress 中从开发到登台再到生产的内容部署管道?
我们正在研究插件,但它们似乎都没有完全实现这一点。
谢谢
解决方案
您很可能正在寻找 ETL(提取 - 转换 - 加载)脚本。它会拉出你想要的桌子。提炼 -
- wp_posts
- wp_postmeta
- wp_terms
- wp_termmeta
- wp_term_taxonomy
- wp_term_relationships
- 任何不在 wp 核心中的插件表。
或者您可能会占用所有表格,但不包括:
- wp_users
- wp_usermeta
- wp_options
然后运行搜索并替换绝对网址。
最后将表加载到下一个环境中。
您可以手动编写或使用Talend Open Studio for Big Data之类的程序
推荐阅读
- sqlite - react-native-sqlite-storage 如何打开指定目录的文件?
- scala - 为什么 UDF 在流式查询中抛出 NotSerializableException?
- amazon-web-services - 如何编写用于在 AWS 中创建 API 网关的 shell 脚本
- java - 基于正文内容的 Apache Camel 自定义重新排序
- javascript - 将 Javascript 变量设置为 PHP 变量
- android - 在哪里做 Arrow.io IO.runUnsafeSync() ?ViewModel 还是 Activity/Fragment?
- objective-c - glreadpixels 在不同的屏幕上返回错误的值
- php - 如何设置多个值来分配会话
- html - 使用单独的 id HTML
- c - 如何在不影响 C 中其他元素索引的情况下删除结构数组?