WordPressのDBデータをWP-CLIを使ってインポート・エクスポート・ドメイン置換する手順メモ

WordPressのDBデータをWP-CLIを使ってインポート・エクスポート・ドメイン置換する手順メモ

「本番環境」と「開発環境」など、記事のデータを移行したいけどドメインが違う…って時のお話です。

基本的にはWordPress の引越し(WordPress Codex日本語版)でも紹介されている「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」というPHPスクリプトを使うことが多いのですが…

「とりあえず開発環境にサクッと」という場合にはこのスクリプトをわざわざ配置して、URL叩いていろいろ入力して…という作業は面倒…

なので今回はWP-CLIを使ってコマンドラインでサクッとDBのインポート・エクスポートとドメインの置換を済ませる方法(を覚える為)のメモです。

この記事は2016/09/09に公開されたものを再編集しています。

今回使うコマンド

さて、いきなりですが今回登場するコマンド一覧です。(自分用メモ)

  • wp db export [ファイル名]
  • wp db import [ファイル名]
  • wp search-replace [元ドメイン] [置換後ドメイン]

ドメインが違うWordPressサイトへデータを持っていく手順

ドメインが違うサイトに記事データや設定などをごっそり持っていくとなると、真っ先に浮かぶのが移行元のDBをエクスポートして、移行先でインポートする。

…という手順ですが、移行元ドメインの情報を持ったまま移行先にインポートしてしまうと、画像アドレスが元ドメインを指したままになっていたり、設定関連で整合性が取れなくなってエラーになったり…

…と、いろいろと問題ありありなので、「移行元ドメインを移行先ドメインに置換する」という作業が必要になります。

そんなときによくお世話になる「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」というPHPスクリプトがあるのですが…

ファイルをwp-config.phpのある場所に設置する必要があって、なんかちょっと面倒なので、できればコマンドラインでサクッとやってしまいたい。

特に開発環境など「いくら失敗しても取り返しが付く」環境ならなおさらサクッと済ませたいのです!

ということで「WP-CLI」というコマンドラインツールでサクッとWordPressのDBデータのインポートとドメインの置換をする方法を覚えたので、そのコマンドとかのメモです。

WP-CLIとは?

細かい話とインストール方法などは今回は割愛しますが、WP-CLIはWordPressのいろいろな操作がコマンドで実行できるようになるツールです。

黒い画面にコマンド打ってWordPressの設定とかガンガン変更できたり、なんならWordPress本体のインストールとかも可能です。すごい。

インストール方法など詳しくは以下を御覧ください。

WP-CLI利用にあたってはインストール作業が必要になるのですが、嬉しいことに「VCCW」や「Local by Flywheel」といったローカル環境を構築するツールでは最初からWP-CLIが使える状態になっています。

WP-CLIを使ってDBのエクスポート・インポート・置換をする手順

DBのエクスポート

まずはコマンドラインのカレントディレクトリをwordpressがインストールされているディレクトリに移動します。(wp-config.phpがあるディレクトリ)

$ wp db export [ファイル名]

(例:wp db export wordpress_20160901.sql

上記コマンドでDBの内容をファイルにエクスポートします。

拡張子はとりあえず「.sql」にしておきます。

エクスポートが完了すれば「Success」が表示され、ファイルが出来上がります。

レンタルサーバー上のWordPressなど、コマンドラインが使えない環境であればphpMyAdminを使ってエクスポートします。(僕の場合エクスポートはphpMyAdminを使うパターンが多いです。)

DBにインポート

まずは先ほどエクスポートしておいた.sqlファイルを、インポート先環境に配置します。

インポート先でもコマンドラインのカレントディレクトリをwordpressがインストールされているディレクトリに移動します。

$ wp db import [エクスポートしたファイルが置いてあるパス]

上記コマンドを実行し「Success」が表示されればDBのインポートが完了です。

ドメインを置換

引き続きインポート先の環境で下記コマンドを実行します

$ wp search-replace [移行元ドメイン] [移行先ドメイン]

例として、「https://yosiakatsuki.net」の本番データを開発環境「http://yosiakatsuki.dev」に持ってくるとします。

コマンドは次のようになります。

$ wp search-replace 'https://yosiakatsuki.net' 'http://yosiakatsuki.dev'

コマンドを実行すると、データ量によっては少し時間がかかりますので待ちます。

wp-cliでの置換件数が一覧に表示される

処理が終わると、どのテーブルに対して何件置換したかが一覧で表示されます。

これでドメインの置換も完了です!

まとめ

いつもターミナルの履歴からコマンド実行していて、コマンドをはっきり覚えてないので、案件切り替わる度に「あれ?wp db search-replaceだっけ?wp replaceだっけ???」と毎回調べてるのでメモがてらエントリにしました。

mysqldumpでもいいかもしれないですけど、WP-CLIの方がパスワードの入力とかいらないのでお手軽ですよね!(たぶん)

興味があれば是非チャレンジしてみてください。