【備忘録】ローカルの開発環境から本番にアップする際のデータベースの書き換え方
WordPressの本番公開時など、別サーバのデータベースをインポートし、ドメインだけ書き換えたい時ってありますよね。
ここしばらくはSearch Replace DB masterを使っていたんですが、PHPが8.4までくるとエラー文を吐き出されてしまうので他に手段はないかと探していたら、そもそも Local(旧 Local by Flywheel)を使っていれば、WP-CLIで置換や置換した上でSQL方式で書き出せたりすることがわかりました。
下記の内容を実行する際には必ずバックアップを取った状態でテストを行って下さい。
Local(旧 Local by Flywheel) の「Open Site Shell」を開くと、最初から WP-CLI が使える状態になっています。

このサイトはローカルでのデータの置き場所をDドライブに変更しているので、Localのインストール先とデータの置き場所が変わっている場合、移動する必要があります。
cd /d "D:\Local SitesD\adbeneq2026\app\public"
本番URLをLacal用のドメインに書き換える手順
自分の環境で使えるか確認する方法
wp --version
を入力してバージョンが返ってこれば機能しています。
書き換えテスト
本番のDBをダウンロードしてきて、Localのドメインに置換する場合、
www. などサブドメインがついていれば簡単です。
wp search-replace www.sample.com sample.local --all-tables --dry-run
サブドメインがなければ、ドメインだけの文字列になるためメールアドレスも置換してしまうかもしれません。
その場合、正規表現を活用します。次の命令はテストです。
wp search-replace "(?<!@)sample.com" "sample.local" --regex --dry-run
書き換わっているのが0件の場合失敗です。
書き換え数が返って来れば成功しています。
書き換え実行は –dry-runを削除して実行
wp search-replace "(?<!@)sample.com" "sample.local" --regex
ドメインなどを置換したものを.sqlで保存(DBは書き換えない)
WP-CLI を使えば、指定文字列を置換したものを保存できます。
データベースは書き換えないので本番用のデータベースを書き出すのに便利です。
Search Replace DB masterだったら本番にアップしたデータベースを書き換えますが、ローカルで書き換えるのでSearch Replace DB masterをアップロードする必要がありません。
ローカルの場合、サブドメインを使っていないので次の命令になります。
テスト時の命令(テストのDBを本番仕様に)
wp search-replace "(?<!@)sample.local" "sample.com" --regex --export=production_db.sql
本番時の命令(本番のDBをテスト仕様に)
wp search-replace "(?<!@)sample.local" "sample.com" --regex --export=production_db.sql
私の環境だと二重引用符で囲まないとヒットしません、一重引用符でもダメでした。
まだまだ使用実績が少ないので間違いがあるかもしれませんが備忘録としてアップしてます。
ブログ一覧へ戻る