これからはこれで行こう!!
今までは、
DBサーバへログイン → phpMyAdminから該当DBをエクスポート → エディタで開く → URLを検索 → 移行先のURLへ置き換え → 保存 → 移行先のDBへphpMyAdminから「インポート」 → サイト表示確認 → 安心・満足
なーんてやってたんだけど、どうやらそれではNGのようです。
wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。
(シリアライズデータの中には、文字列の長さとかも含まれてるので)
そこで、シリアライズされたデータは一度アンシリアライズしてから置換して、シリアライズした後に DB に書き戻してやる必要があります。
WordPress のDB上のサイトURLを一気に変換 (dogmap.jpより)
!! 今までずっとエディタで書き換える方法でやっていたワケです。いやぁ何事も無くてホント良かったよ。と言うことで、早速、をかもとさんが作ったスクリプトを使ってやってみることに。
やったのは本サイトからローカルへ現在のデータを持ってくる作業。
- 本サイトよりWordPressデータをダウンロード
- phpスクリプトをgitから持ってくる。今回はブログの記事通りreplace-siteurl.phpとしてローカルへ保存。MAMPで運用しているので、該当サイトのルートへ保存。
- 本サイトよりDBをエクスポート。ローカルのDBへインポート。
- ブログコメント欄より[WordPress] WordPress のDB上のサイトURLを一気に変換 を参考にwp-config.phpのDBHOSTを書き換え。これの意味はわからないままなので後でちゃんと調べるべし
- ここでターミナルから
[code]$ php replace-siteurl.php {新URL} /path/to/wordpress[/code]を実行。 今回は
[code]$ php replace-siteurl.php http://ローカルURL wp/[/code]
でEnter。
- あっという間に書き換え完了!! replace-siteurl.phpはどこかネット上に置いといてもイイかも。
これからはこれで安心 😀