如何合并本地数据库和实时数据库?

2022-08-30 22:20:05

我们已经为Wordpress开发了好几年,虽然我们的工作流程已经在几个点上进行了升级,但有一件事我们从未解决过......将本地Wordpress数据库与实时数据库合并。

因此,我说的是拥有一个本地版本的站点,其中文件和数据已更改,而实时站点上的数据也同时更改。

我所能找到的只是一个完美的世界场景,即拉下网站,没有人(甚至客户)接触实时网站,然后把本地网站推回去。即复制一件事而不是另一件事。

如何在不运行大量mysql命令的情况下完成此操作?(感觉如果他们没有得到适当的检查,他们可能会摔倒!这可以通过Gulp的(我看到它提到)或插件来完成吗?

需要明确的是,我不是在谈论通过WP Migrate DB ProBackupBuddy或类似的东西来回推送/拉取数据 - 这是一个合并,而不是用另一个数据库替换一个数据库。

我很想知道其他开发人员是如何解决这个问题的!

文件更改相当容易解决,当数据更改时,它会导致噩梦。


WP Stagecoach确实进行了合并,但您无法在本地工作,它会从您应该处理的活动站点创建一个暂存站点。合并效果很好,但不能在本地工作是一个致命的打击。

开发人员也告诉我,datahawk.io 会做我想做的事,但没有发布日期。


答案 1

听起来VersionPress可能会做你需要的事情:

版本新闻暂存

有几个警告:我没有使用它,所以不能保证它的有效性;它目前处于抢先体验阶段。


答案 2

重要提示:在将本地数据合并到实时数据库之前,请先备份该数据库。

按照以下步骤操作可能有助于迁移大部分数据并将其合并到实时

  1. 转到本地站点工具的 wp 后端->导出。
  2. 选择“所有内容”单选按钮(如果默认情况下未选中)。
  3. 这将带来一个 Xml 文件,其中包含由所有默认帖子类型和自定义帖子类型组成的所有本地数据。
  4. 在记事本++或任何编辑器中打开此XML文件,然后查找本地URL并将其替换为实时URL。
  5. 现在访问实时站点,并在“工具->导入”下导入 XML。
  6. 手动上传文件(图像)。

这将使很大比例的数据从本地到实时。

其余数据必须编写自定义脚本。

危险因素有:

  1. 将图像从本地上传到实时时,同名图像将被覆盖。
  2. Wordpress将图像保存在post_meta为图像生成序列化数据,而不是在上传数据库时应该注意的。
  3. post_meta中的序列化数据用于保存图像的 3 或 4 个维度的序列化数据。post_type="attachment"
  4. 导入数据时用户的用户名或电子邮件ID可以相同(或者wp执行检查唯一用户名和电子邮件的功能),然后这些用户将不会被导入(可能是可能的)。

推荐