wordpressにおいてドメインの移動(ローカル->サーバのアップも)などの移転にともうなうデータベースのエクスポートとインポートには以下の注意点あり。
まず、移転に必要なものは
- wordpressで使用しているカスタマイズしたテンプレート群(index.phpを初めとする)。
- "wp-content/uploads/"にアップした(デフォルトでは)メディア
- 導入したプラグイン
以上が、DB(MySQL)以外にバックアップが必要なもの。
ここからが本題。DBのバックアップ。手順は
1、phpMyAdminでエクスポート。オプションは皆バラバラに推奨してるwが、
DROP TABLE / VIEW / PROCEDURE / FUNCTIONを追加
IF NOT EXISTSを追加
AUTO_INCREMENT 値を追加する
テーブル名やフィールド名を逆クォートで囲む
完全な INSERT 文を作成する
長い INSERT 文を作成する
BLOBに16進数表記を利用する
って感じでしょうか。
※"wp_options","wp_users", "wp_usermeta"あたりは、エクスポートしないほうが良いらしいが、、、"wp_options"は管理画面の設定値で、"wp_users"と"wp_usermeta"はユーザー管理に関することなので、共に移転元と同じ状況(プラグインやアカウントやパス)を再現できればインポートしても問題ないかも。
2、次は移転先でwordpressをインストールした後にphpMyAdminでインポートする。
※sqlファイルをテキストエディタで開き、最初のほうにあるデータベース名を移転先のデータベース名に変更。
3、メディアへのパスなど、絶対パスが含まれているデータベースなどをSQLで置換する。
※テーブル接頭辞を"wp_"から変更している場合は以下のコマンドを適宜置き換え。
update wp_posts set post_content=replace(post_content,'古いURL','新しいURL')
update wp_posts set guid=replace(guid,'古いURL','新しいURL')
update wp_options set option_value=replace(option_value,'古いURL','新しいURL')
※カスタムフィールドを使用している場合は、
update wp_postmeta set meta_value=replace(meta_value,'古いURL','新しいURL')
も変更が必要。
※データベースのテーブル接頭辞をデフォルト"wp_"より変更しいる場合は、
update wp_options set option_name=replace(option_name,'古い接頭辞','新しい接頭辞')
update wp_usermeta set meta_key=replace(meta_key,'古い接頭辞','新しい接頭辞')
最終更新:2010年11月10日 00:27