過去のBlogデータを新Blogへお引越し

この記事の所要時間: 245

無事に出来たのでメモしておく。

 

■前提条件

今回はwordpressをNetwork化(一つのWordpress上で複数ブログを管理する、過去でいうところのwordpress-mu)していることもあり、若干手間取ったので今後同じようなことをする際に参考にしよう。

1.古い引越し先も新しい引越し先もWordpressであること
2.文字コードはUTF-8であること(多分nkf/iconvとか使えば変換はできるんだろうけれど今回はUTF-8だったので不要)
3.MySQLやphpMyAdminの整備、動作を理解して実施できること 🙂

■手順

1. 旧Blogのデータの準備
・自宅サーバ上で起動しなくなったサーバのVMイメージが生きていたのでCentosのRescue DVD経由でパーティションを読み込んでサルベージ。

・各パーティションを/mnt/sysimage/etc/fstab経由で確認して都度都度/mnt/sysimage/配下のディレクトリにマウントする

・mysqld_safeでmysqlが運良く動いてくれたのでそのままmysqldump実施。
# mysqldump -u wakaski -p urege4 < urege4.sqlみたいな感じでうれげBlog4のSQLイメージデータをサルベージ。

2. Network化している新ブログのデータ構造をチェック
・新ブログは2つ目のネットワークになっていた影響か(?)、wp_postというテーブル上に記事データが保存されていた。旧Blogの非Network化していたブログはwp_postだったので VIMとかで適当に置換。
%s/wp_post/wp_post/g とかで。

3.新BlogのIDと旧Blogの記事のIDの辻褄をあわせる
・IDがかぶるとおそらくコケるだろな−ということでとりあえず新Blogで使用していた1-20までのIDを旧Blog上のSQLの記事から削除

4.必要な部分(つまり記事の部分)だけ加工したSQLをphpMyAdminで流し込む
・手抜きですいません 🙂
・新Blog上のwp_postのテーブル上にインポートで圧縮した加工済みSQLのファイルを流し込む。
Primaryキーが設定されているからだめよん などといったエラーを何回かみるのでGoogle先生にお伺いを立てながらWorkaroundを実施。

5.新Blog上に旧Blog上のエントリーが表示され始める。
→(゚д゚)ウマー

■参考にしたネット上の価値ある情報

(先人のみなさん、ありがとうございます!)

  1. CentOS 6にnginxとphpMyAdmin最新バージョンをサクッとインストールする方法
  2. WordPressからデータベースに直接アクセスする
  3. 504 Gateway timeoutがでたー!
  4. MySQL プライマリキーの変更