我见过许多与数据库迁移相关的问题,但没有一个明确说明:编辑数据库时我实际需要编辑哪些表?
作为习惯的一种力量,我编辑整个mySQL数据库,通常就是这样。 (但有时这可能会弄乱用户评论中留下的URL。)但是,要明确知道哪些表格我需要编辑以便正确完成迁移,这将是一件好事。
编辑:我已经了解了迁移的工作原理以及tool要使用的内容,我已经阅读了有关迁移的codex条目。我没有特定的迁移问题。
这实际上是一个最佳实践问题。
我正在寻找的是一个明确的列表,列出了我可以从搜索和替换中排除的表格。例如,我知道基本的URL信息在wp_options中,我知道(某些)图像路径存储在wp_postmeta中。基本上我想尽可能地排除每个表,同时仍然保留网站的小部件,图像,设置等。
答案 0 :(得分:3)
唯一需要更改的引用位于wp_options
表中。一个是home
网址,另一个是siteurl
。这些将允许您登录管理员并查看前端。但是,您仍然需要使用管理员更新永久链接并重写规则。
然而,我仍然建议使用自动解决方案。我使用this tool来查找和替换数据库引用。它专门用于wordpress,但它适用于任何数据库。它还允许您选择要更新的表并使用序列化字符串,这样您就可以避免在评论部分出错。
只需将文件放在wordpress安装的根目录下,然后运行提示即可。请务必取消选择wp_comments
和wp_commentmeta
表格。此外,请确保删除生产中的文件,因为它会带来潜在的安全威胁。
基于评论的更新
除了上面的两个点之外,数据库中有几个存储URL的地方。大多数插件会将其选项存储在wp_options
表中。通常,插件也会序列化数据以避免大量查询。但是,您不能简单地更改序列化数据中的URL,因为序列化字符串中有长度引用。因此,如果您当前的URL长度为15个字符,而新的URL为20,则还需要更新URL和字符串长度。如果不这样做,PHP将忽略该值。我相信这是一种避免代码注入的安全措施。
对于媒体部分中的资源,网址存储在帖子类型wp_posts
下的attachment
中。如果你在帖子中硬编码绝对链接,你可能还需要解析它们(如果是这种情况,你可以解析整个表)。如果您使用任何类型的自定义字段插件或使用post meta for URL执行任何操作,您还需要浏览wp_postmeta
。
另外需要提及的是,某些插件会添加自己的数据库表。这些显然是基于每个案例,但一个好的经验法则是尝试在任何字符串列中运行“%http%”的查询,以查看是否存在硬编码的URL。这是我将使用的查询:
SELECT * FROM `table` WHERE `column` LIKE '%http%'
答案 1 :(得分:0)
从以下链接http://interconnectit.com/products/search-and-replace-for-wordpress-databases/下载该文件。 将它放在根文件夹中并访问该文件,然后按照步骤更换网址。
我已经使用了很长时间没有任何问题。
希望它有所帮助!
由于