WordPressのDB移行メモ

これからはこれで行こう!!

今までは、

DBサーバへログイン → phpMyAdminから該当DBをエクスポート → エディタで開く → URLを検索 → 移行先のURLへ置き換え → 保存 → 移行先のDBへphpMyAdminから「インポート」 → サイト表示確認 → 安心・満足

なーんてやってたんだけど、どうやらそれではNGのようです。

wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。
(シリアライズデータの中には、文字列の長さとかも含まれてるので)
そこで、シリアライズされたデータは一度アンシリアライズしてから置換して、シリアライズした後に DB に書き戻してやる必要があります。
WordPress のDB上のサイトURLを一気に変換 (dogmap.jpより)

!! 今までずっとエディタで書き換える方法でやっていたワケです。いやぁ何事も無くてホント良かったよ。と言うことで、早速、をかもとさんが作ったスクリプトを使ってやってみることに。

やったのは本サイトからローカルへ現在のデータを持ってくる作業。

  1. 本サイトよりWordPressデータをダウンロード
  2. phpスクリプトをgitから持ってくる。今回はブログの記事通りreplace-siteurl.phpとしてローカルへ保存。MAMPで運用しているので、該当サイトのルートへ保存。
  3. 本サイトよりDBをエクスポート。ローカルのDBへインポート。
  4. ブログコメント欄より[WordPress] WordPress のDB上のサイトURLを一気に変換 を参考にwp-config.phpのDBHOSTを書き換え。これの意味はわからないままなので後でちゃんと調べるべし
  5. ここでターミナルから
    [code]$ php replace-siteurl.php {新URL} /path/to/wordpress[/code]

    を実行。 今回は

    [code]$ php replace-siteurl.php http://ローカルURL wp/[/code]

    でEnter。

  6. あっという間に書き換え完了!! replace-siteurl.phpはどこかネット上に置いといてもイイかも。

これからはこれで安心 😀