phpMyAdminを手動で操作することなく、データベースの変更を持ち運びましょう。

TL;DR
- WP Staging SQL Recorder をインストールします。
- Tools → SQL Recorder で Start Recording をクリックします。
- コピーしたい変更を実行します。
- Stop Recording をクリックして
.sqlファイルをダウンロードします。 - そのファイルを WP-CLI または phpMyAdmin 経由でコピー先サイトにインポートします。
目的:ステージングから本番への展開、デバッグ、コンテンツ編集を同期したままサイトを複製するのに最適です。
なぜSQLクエリを記録するのか?
- きめ細かなマイグレーション – データベース全体のダンプではなく、たった今行った変更だけを移行できます。
- 監査証跡 – プラグインやテーマがデータを保存するときに、どのSQLが実行されているのかを正確に把握できます。
- デバッグ – クエリを再生することで、開発サイト上で厄介なバグを再現できます。
前提条件
- WordPress 5.8 以降(6.8.2 までテスト済み)。
- 移行元と移行先の両サイトで管理者アクセス権。
- 無料の WP Staging SQL Recorder プラグイン(ダウンロードリンクは下記)。
- 基本的なデータベースインポート権限(WP-CLI または phpMyAdmin)。
ステップ・バイ・ステップガイド
1. プラグインのインストール&有効化
- 🚀 GitHub から
wp-sql-recorder.zipをダウンロードします。 - Plugins → Add New → Upload Plugin に移動します。
- ZIPをアップロードし、Install Now をクリックして、続いて Activate をクリックします。
2. 記録の開始
- Tools → SQL Recorder に移動します。
- Start Recording をクリックします。
- 緑色のバナーが記録中であることを示し、ファイル名(例:
wp-sql-20250716-153045.sql)が表示されます。


3. 変更を実行する
INSERT、UPDATE、DELETE、CREATE、ALTER ステートメントを引き起こすあらゆる操作が記録されます。例:
- 新しい投稿やページの公開。
- カスタムテーブルを作成するテーマのインストール。
- プラグインのデータマイグレーションウィザードの実行。
⚠️ SELECTクエリはスキップされます。ダンプを安全かつコンパクトに保つためです。
4. 停止してファイルをダウンロード
- Tools → SQL Recorder に戻ります。
- Stop Recording をクリックします。
- Download SQL file ボタンが表示されます。
ファイルは一時的に /wp-content/uploads/sql-recordings/ に保存されます。スクリプト化に便利です。
5. SQLファイルを移行先サーバーへ転送する
# scp での例
scp wp-sql-20250716-153045.sql user@prod:/var/www/html/
6. 移行先サイトでインポートする
A. WP-CLIを使用(推奨)
wp db import wp-sql-20250716-153045.sql
WP-CLI は wp-config.php の認証情報を自動的に使用します。
B. phpMyAdmin / Adminer を使用
- phpMyAdmin でサイトのデータベースを開きます。
- Import をクリックし、ファイルを選択して開始します。
プレフィックスが違う? 移行先サイトが異なるテーブルプレフィックス(
wp_→wp7_)を使っている場合、インポート前に素早く検索・置換を実行してください:sed -i 's/`wp_/`wp7_/g' wp-sql-*.sql
ワークフローの自動化
夜間にデプロイする必要がありますか?WP SQL Recorder を cron 駆動の WP-CLI スクリプトと組み合わせましょう:
wp option update wpsr_recording 1 # 開始
sleep 3600 # ...1時間の編集
wp option update wpsr_recording 0 # 停止
FILE=$(wp option get wpsr_current_file)
wp db export "$FILE" # 任意の安全コピー
rsync -avz "$FILE" prod:/var/www/html/sql/
ssh prod "wp --path=/var/www/html db import sql/$(basename $FILE)"
トラブルシューティング
| 症状 | 解決策 |
|---|---|
| ファイルがダウンロードできない | uploads/sql-recordings/ が書き込み可能であることを確認してください(権限 755)。 |
| 外部キーエラーでインポートが失敗する | トラフィックの少ない時間帯にインポートするか、FKチェックを無効化します:ダンプの前に SET FOREIGN_KEY_CHECKS=0;。 |
| 何も記録されない | 記録がONになっており、DBへ書き込むアクションを実行したことを確認してください。 |
よくある質問
サイトが遅くなりますか?
ごくわずかです。各書き込みクエリは LOCK_EX でファイルに追記されます。書き込みの多いサイトでは、デプロイ期間中のみ有効にすることを検討してください。
特定のテーブルでフィルターできますか?
まだできませんが、ロードマップに入っています。リポジトリにスターを付けてアップデートをお見逃しなく!
ダンプはMariaDBと互換性がありますか?
はい — クエリはMySQL/MariaDBが受け取るのと全く同じ形でキャプチャされます。
次のステップとコール・トゥ・アクション
- WP SQL Recorder をダウンロード → プラグインページ ›
- WordPress開発のヒントをもっと知りたい方は、ニュースレターを購読してください。
- この記事をシェアしてください!他の開発者の助けになり、コンテンツの届く範囲も広がります。
このガイドで時間を節約できましたか? #WP Staging SQLRecorder を付けて成功体験をツイートしてください。