そういえばあまり紹介されたことがない技なので紹介します。
これを使用するとコマンド一発でDBを引っ越せるのでステージングから本番サーバーへの引っ越しにすごい威力を発揮すると思います。
エイリアスを設定する
まずWP-CLIでリモートサーバーに接続するためのエイリアスを設定します。
以下の要領で、~/.wp-cli/config.yml
に書いてください。
@staging: ssh: user@staging.example.com/var/www/html @production: ssh: user@example.com/var/www/html
こうすることで、リモートサーバー上に WP-CLI がインストールされていれば、以下のように SSH 経由でコマンドを実行することができます。
$ wp @staging plugin list
うまくいかない場合は、上述のファイルをよーく見てフォーマットがまちがってないかを確認してください。
あと、ローカル、リモートのそれぞれで wp --info
を実行して変なエラーが出てないかも確認しましょう。
あっ、あとすべての WP-CLI を最新版にアップデートしましょう。
$ wp cli update
以上で準備は完了です。
データベースを引っ越す
データベースを引っ越すのは、search-replace
というコマンドと db import
というコマンドをパイプでつなぐ感じです。
いちいち打つのはめんどくさいので、多くの場合、Git とか CI ツールとかで自動的に蹴っ飛ばすか、シェルスクリプトに書いとくといいでしょう。
(いちいち手で打つのはヒューマンエラーの原因なので2回以上やるときは自動化するべきです!)
コマンドは長いですがよく見ればそれほど難しくありません。
$ wp @staging search-replace \ http://staging.example.com https://example.com \ --export --skip-columns=guid | wp @production db import -
エイリアスはめんどくさいな~という方は、–ssh というオプションを使用すれば同じことができます。
ローカル環境から一発で引っ越すには以下のような感じです。
$ wp search-replace http://127.0.0.1 https://example.com \ --export --skip-columns=guid | wp @production db import -