wp-envを使用して本番環境からデータを引っ張ってくる方法
wp-envを使用して本番環境からデータを引っ張ってくる方法 uploads/を控える。
config.php の$table_prefixを控える。
SQLのダンプをとる。
backupwordpressが入っていると日次バックアップから簡単に取ってこれる。
.wp-env.jsonを以下のように設定する。
@wordpress/env@9.5.0で動作確認
lifecycleScriptsをうまく活用してテストまでを自動化しようとしたがうまくできなかった。具体的には、カテゴリーや固定ページ、パスワードなどがすべて初期値へとリセットされてしまっている。
code:.wp-env.json
{
"config": {
"WP_DEBUG": true
},
"mappings": {
"wp-content/uploads": "./uploads",
"int21h_yokkin.sql": "./int21h_yokkin.sql"
},
"plugins": [
"../social-link-block",
]
}
シェルを叩く!
データベースの接頭辞を変更している場合はsedを使ってこの段階で wp_ に直しておく。
-iは破壊的に内容を変更するオプション。ところで接頭辞をなぜわざわざ変更しているのかと聞かれれば、レンタルサーバーで動かしている以上作れるデータベースの数に限りがあるためである。つらいね。
code:shell
sed -i -e s/yokkin_com_/wp_/g ./int21h_yokkin.sql
コンテナを起動する。
code:shell
wp-env start
(任意)SQLのダンプへのバインドができているかどうかを確認しておく。--はwp-envがlsのオプション-laをそのまま文字列として受け取ることを期待するための保険でつける。
code:shell
wp-env run cli -- ls -la int21h_yokkin.sql && \
wp-env run tests-cli -- ls -la int21h_yokkin.sql
既存のデータベースを初期化する。
code:shell
wp-env run cli wp db clean --yes && \
wp-env run tests-cli wp db clean --yes
データベースのダンプからインポートする。
code:shell
wp-env run cli wp db import int21h_yokkin.sql && \
wp-env run tests-cli wp db import int21h_yokkin.sql
(任意)データベースの中身があるかどうか確認する。
code:shell
wp-env run cli wp db check && \
wp-env run tests-cli wp db check
code:plain
ℹ Starting 'wp db check' on the cli container.
wordpress.wp_commentmeta OK
wordpress.wp_comments OK
wordpress.wp_fls_auth_logs OK
wordpress.wp_fls_login_hashes OK
wordpress.wp_links OK
wordpress.wp_options OK
wordpress.wp_postmeta OK
wordpress.wp_posts OK
wordpress.wp_term_relationships OK
wordpress.wp_term_taxonomy OK
wordpress.wp_termmeta OK
wordpress.wp_terms OK
wordpress.wp_usermeta OK
wordpress.wp_users OK
Success: Database checked.
✔ Ran wp db check in 'cli'. (in 0s 902ms)
魂のFind & Replace。--dry-runを付けて実行すると安全。 code:shell
wp-env run cli wp search-replace 'yokkin.com' 'localhost:8888' && \
wp-env run cli wp search-replace 'localhost:8888/wp/' 'localhost:8888/' && \
wp-env run tests-cli wp search-replace 'yokkin.com' 'localhost:8889' && \
wp-env run tests-cli wp search-replace 'localhost:8889/wp/' 'localhost:8889/' && \
環境固有の問題かもしれないけど、REST-APIや投稿ページがなぜか参照できないときはReading SettingsからYour homepage displaysをいじる。 以上。