大规模数据库替换方法

时间:2017-03-28 22:02:57

标签: php mysql sql database wordpress

快速概述:我们正在尝试将一些非常长期(7岁以上)的WordPress多站点安装从子域转换为子目录。更改wp-config.php.htaccess一切都很好。但是其中一些安装有超过1000个站点,并且在整个数据库中散落的可能有abc.multisite.com的大量实例。

我试图找到自动转换abc.multisite.commultisite.com/abc的最佳方式,当然不会影响导致123abc.multisite.com的{​​{1}}。< / p>

我见过的所有可以执行此操作的查找/替换插件一次只进行一次搜索,而且我已经有数千条记录要替换。

最好的方法是什么?是否有一个SQL命令可以在PHP中循环遍历数百个数据库表?

我可以使用get_sites()函数获取网站列表并循环显示。

或者是否有更好的工具来导出数据库并在那里查找/替换(这些数据库的大小会使原子/升华/括号崩溃。

1 个答案:

答案 0 :(得分:1)

如果您拥有WP CLI的(SSH)访问权限,则可以在您的网站根目录中运行:

http://null

对于Multisites,如果要搜索所有表格,则需要wp search-replace abc.multisite.com multisite.com/abc 标记。

http://wp-cli.org/commands/search-replace/

  

默认情况下,该命令使用注册到$ wpdb对象的表。   在多站点上,这只是当前站点的表,除非    - 指定了网络。搜索/替换智能地处理PHP序列化数据,并且不会更改主键值。

--network