背景
我被分配更新第 3 方 Wordpress 主题,第一项任务是将生产网站迁移到我的开发环境。
迁移
- 我已通过 ssh 连接到生产服务器,压缩整个网站文件夹并连同转储的数据库一起传输到我的本地环境。
- 我已将其部署到与生产服务器具有相同灯配置的 vagrant box 中。
- 我已在开发环境中恢复的数据库中运行了以下更新。
:
UPDATE wp_options SET option_value = replace(option_value, 'http://production.com', 'http://dev.site') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'http://production.com', 'http://dev.site');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://production.com','http://dev.site');
问题
在我的开发环境中访问该网站时,我注意到许多生产短代码已损坏。
有什么想法吗?
最佳答案
大多数迁移中断是由错误的序列化数据引起的。
修复这些中断的最简单方法是强制重新创建数据。这可以通过强制插件将序列化数据重写到 MySQL 数据库来实现。
按照以下步骤操作将有助于解决您可能遇到的大多数迁移错误:
- 停用并重新激活所有插件
- 激活不同的(最好是默认/内置)主题,然后重新激活您当前的主题。
- 前往设置 -> 固定链接,然后点击“保存”(保持所有设置不变)
对于阅读此答案的其他人: 需要注意的是,如果您的 URL 发生更改并且您没有运行问题中提到的 SQL 修复
,那么几乎所有这些都是不可能的如果需要,我在下面添加了我自己的版本,您只需记住替换 oldsite-url.com
和 newsite-url.com
具有相关值。
如果相关数据库使用自定义表前缀(即不是 wp_
),您需要记住查找 -> 替换也是如此。
这是 SQL 查询:
UPDATE wp_options SET option_value = replace(option_value, 'http://oldsite-url.com', 'http://newsite-url.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = REPLACE (guid, 'http://oldsite-url.com', 'http://newsite-url.com');
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://oldsite-url.com', 'http://newsite-url.com');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://oldsite-url.com','http://newsite-url.com');
关于WordPress迁移到本地环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497293/