【備忘録】ローカルの開発環境から本番にアップする際のデータベースの書き換え方

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

私の環境だと二重引用符で囲まないとヒットしません、一重引用符でもダメでした。

まだまだ使用実績が少ないので間違いがあるかもしれませんが備忘録としてアップしてます。

ブログ一覧へ戻る
松下 正平のプロフィール写真
            

この記事の著者

松下 正平

2002年より大阪を拠点に活動。仕様の行間を読み「よきにはからう」実装力をモットーとするWeb制作・WordPress開発のフリーランス。
2019年に大阪市内から枚方市に移転。
近年はLooker Studioを活用したアクセス解析にも力を入れています。

趣味

趣味は息子とのサッカー、及びサッカー観戦。ガンバ大阪好き。
好きなアイドルはBABYMETALとsora tob sokana。
現在はまっているゲームは「スプラトゥーンレイダース」
無限食堂240階をあたりを探索中。

コーディングのご依頼お待ちしております

Wordpressの構築やレスポンシブ化など人手が欲しい時はぜひお声がけください。

このブロックが表示されている時は条件が合えば即日作業が開始できます。お気軽に条件をお送りください。

制作会社様向け詳細はこちら

依頼は考えてないけど、ききたいことがある方はLINEもご活用ください。

友だち追加
  • 突発的な理由で即答できないことがあります。ご了承ください。
両手いっぱいに広げ、コーディング案件を待っているメタラー