WordPress ME2.0から2.5.1への引越し

投稿者: | 2008年6月7日

昨日、個人的に新しいサーバと契約したので、試しにWP2.5.1をインストールしてみました。今回の課題は当ブログ(WP ME2.0)の内容を、WP2.5.1にエクスポート(引越)出来るかという事です。

先ず、このWP ME2.0には「エクスポート」という機能はありません(WP2.5にはある)。 そこで、色々と試して僕が行き着いたのは、データベースからデータベースへ直接データをコピーする方法です。

記事(エントリー)データの引越

先ず、両方のサーバ環境でphpMyAdminを開いて、旧サーバの方から記事データテーブル“wp_post”のエクスポートをSQL形式で行います。この時、オプションがデフォルト状態だとSQL文の行が崩れて上手く行かないので、「長い INSERT 文を作成する」のチェックを外すと良いです。

吐き出されたSQL文の内、冒頭のテーブル作成は不要なので(引越先にすでにある)、INSERT・・・以降をコピーし、新環境のphpMyAdminでSQLを実行させる。

新旧”wp_post”テーブルの構造は、幾つかのデータ型が少し違う事を除けば同一であり、問題なくデータが挿入されます。ただし、このままではブログ上に記事は現れません。何が違うのか探すと、”post_type”というフィールドの値が”post”になっていないと、WP2.5では表示されないのでした(旧WPでは空欄)。

しかし、全ての行に”post”と記入していくのも面倒なので、少々強引ですが”post_type”フィールドを一旦削除してしまい、また同じものを作りました。すると、デフォルト値が”post”なので、全行”post”が入ります。こうすると、ちゃんとブログ上に全ての記事が表示されるようになりました。

不思議なのは、パーマリンクの書かれた”guid” フィールドも、ドメインが違うので当然旧データのままではおかしいのですが、何故かそのままでも動作しています。

カテゴリとコメントデータの移動

カテゴリ情報が格納されているテーブルは、新旧WPで名前が変わっていて、旧では”wp_categories” 、新では”wp_terms”となります。ところが不思議なことに、何もしていないのに”wp_terms”に旧のカテゴリー情報が入っているではないですか!記事データから自動的に生成されるのか?

一方、各記事に割り当てられたカテゴリーはデタラメでした。これを規定しているのは、ME2.0では”wp_post2cat”、WP2.5では“wp_term_relationships”のようですが、これらのテーブルはフィールド名が違うので、そのままSQL文では飛ばせません。フィールドの意味もイマイチよく判らないので、これはダッシュボードで設定していくしかないかなと思っているところです。

最後にコメントデータですが、 これは”wp_comments”を旧から新へそのままSQLで飛ばすだけでOKでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です