【问题标题】:Which tables in a Wordpress database need to be edited for migration to a new URL?需要编辑 Wordpress 数据库中的哪些表才能迁移到新 URL?
【发布时间】:2013-09-08 17:09:04
【问题描述】:

我见过很多与数据库迁移相关的问题,但没有一个明确说明:在编辑数据库时,我实际上需要编辑哪些表?

出于一种习惯,我编辑了整个 mySQL 数据库,而且通常会成功。 (但有时这可能会弄乱用户 cmets 中留下的 URL。)但是,最好具体了解我实际需要编辑哪些表才能正确完成迁移。

编辑:我已经了解迁移的工作原理以及使用哪个tool,并且我已经阅读了关于迁移的法典条目。我没有遇到特定的迁移问题。

这实际上更像是一个最佳实践问题。

我正在寻找的是我可以从搜索和替换中排除哪些表的明确列表。例如,我知道基本 URL 信息在 wp_options 中,我知道(某些)图像路径存储在 wp_postmeta 中。基本上我想排除所有可能的表格,同时仍然保留网站的小部件、图像、设置等。

【问题讨论】:

  • 主要是wp_posts表。参考:codex.wordpress.org/Moving_WordPress
  • 您要编辑网站网址吗?
  • 您可以use search & replace plugin 搜索您的旧网址并将其替换为所有 wp 表中的新网址

标签: mysql wordpress database-migration


【解决方案1】:

唯一需要更改的引用在wp_options 表中。一个是home url,另一个是siteurl。这些将允许您登录管理员并查看前端。但是,您仍然需要使用管理员更新您的永久链接和重写规则。

不过,我仍然建议使用自动化解决方案。我使用this tool 来查找和替换数据库引用。它是专门为 wordpress 制作的,但它适用于任何数据库。它还允许您选择要更新的表并将使用序列化字符串,因此您应该能够避免 cmets 部分中的错误。

只需将文件放到 wordpress 安装的根目录并运行提示即可。确保取消选择 wp_commentswp_commentmeta 表。此外,请确保在生产环境中删除该文件,因为它存在潜在的安全威胁。

根据评论更新

除了上面的两个地方,数据库中还有几个地方存储了 URL。大多数插件会将它们的选项存储在wp_options 表中。通常,插件还将序列化数据以避免大量查询。但是,您不能简单地更改序列化数据中的 URL,因为序列化字符串中有长度引用。因此,如果您当前的 URL 长度为 15 个字符,而新的 URL 长度为 20,则您还需要更新 URL 和字符串长度。如果您不这样做,PHP 将忽略该值。我相信这是一种避免代码注入的安全措施。

对于媒体部分中的资产,URL 存储在 wp_posts 的帖子类型 attachment 下。如果您在帖子中对绝对链接进行硬编码,您可能还需要解析这些链接(如果是这种情况,您可能只需要解析整个表格)。如果您使用任何类型的自定义字段插件或对 URL 的 post meta 进行任何操作,您还需要通过 wp_postmeta

另外一件事是,一些插件会添加自己的数据库表。这些显然是基于每个案例的,但一个好的经验法则是尝试在任何字符串列中运行“%http%”的查询,以查看是否有硬编码的 URL。这是我将使用的查询:

SELECT * FROM `table` WHERE `column` LIKE '%http%'

【讨论】:

  • 我认为仅仅编辑 wp_options 有点太小了。我正在寻找可以更新图像路径等的最佳实践。
【解决方案2】:

从以下链接http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ 下载文件。 将其放在根文件夹并访问该文件并按照步骤替换网址。

我已经使用了很长时间了,没有任何问题。

希望对你有帮助!

谢谢

【讨论】:

  • 你读过我的帖子吗?或其他答案?该脚本已被提及两次。它也没有回答问题。
  • 很抱歉重复了脚本的链接。但是使用它不应该打扰任何东西并且应该可以工作,并且您对受影响的表是选项和 postmeta 是正确的,除非您使用的插件也需要更换。所以我觉得最安全最好的方法就是使用上面的脚本:)
  • 我重申这并不能回答问题。如果您没有可能的解决方案,请勿发布。
  • 我遇到了另一个有用的链接,当从一台服务器迁移到另一台服务器时,我们根本不需要搜索和替换drujoopress.wordpress.com/2013/09/06/…希望它有所帮助:)
猜你喜欢
  • 1970-01-01
  • 2016-01-17
  • 2011-07-26
  • 2020-11-14
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
相关资源
最近更新 更多