WordPressの本番環境から開発環境にデータを持ってくるとき(もしくはその逆)
問題
本番環境のWordPressのデータを開発環境に持ってくると、設定やURLや画像のパスなどが本番URLのままで、そのまま使えない。(ドメイン変更、ディレクトリ変更などの移転の場合も)
いい手はないか。
答え
mysqldumpでMySQLのデータを取得すると、wp_posts や wp_options の中の値が本番環境用になっているので、置換が必要。
本番URLなど → 開発環境URLなど
Linuxでは、sedコマンドでテキストの置換ができるので、これを使うとmysqldumpのついでに置換までできる。
mysqldump -u 接続ユーザー -p データベース名 | sed -e "s/本番URL/開発URL/g" > ダンプファイル
例)本番環境だとwww.example.comの一番上の階層に設置してあるけど、開発環境だと192.0.2.123のxxxx/yyyy/zzzzの下に置いてある場合
mysqldump -u user_hoge -p db_fuga | sed -e "s/www.example.com/192.0.2.123\/xxxx\/yyyy\/zzzz/g" > ダンプファイル
上の置換を逆にすれば、開発環境から本番環境にデータを持っていくときにも使える。
ダンプをとってしまった後なら、ダンプファイルを引数に渡して置換。
sed -e 's/xxx/XXX/g' ./example.txt > ./example-new.txt
コメント