0

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

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

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

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

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

4

2 回答 2

3

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

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

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

根据评论更新

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

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

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

SELECT * FROM `table` WHERE `column` LIKE '%http%'
于 2013-09-05T03:34:27.530 回答
0

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

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

希望能帮助到你!

谢谢

于 2013-09-05T07:58:27.430 回答