コンテンツにスキップ

WordPress Drift 運用 Runbook

この文書の役割

この runbook は、WordPress 側で db drift が疑われるときに、MariaDB の生 DDL 差分ではなく、コードベースが期待する CMS 状態との差分を監査するための手順です。

この文書で扱う drift:

  • 必須 plugin の inactive
  • 必須 post type / taxonomy / menu location の欠落
  • acf-json/ 正本と live ACF 定義の不一致
  • home / siteurl / ritsubi_ec_storefront_url など同期対象 option のズレ
  • fixed route page / local seed fixture の欠落

自動 repair はこの文書の対象外です。まずは read-only audit で差分を特定してください。

正規コマンド

目的 コマンド 備考
local 監査 just wp-drift-audit profile=local が既定
bootstrap 直後の成立確認 just wp-bootstrap-verify 内部で drift audit の bootstrap-local profile を使う
staging / production 監査 just wp-drift-audit-vps staging / production profile=remote が既定
定期 remote 監査 wordpress-drift-monitor.yml WORDPRESS_ENDPOINTCMS_API_TOKEN を AWS Secrets Manager から読み、認証付き HTTP endpoint を叩く

Profile の違い

  • bootstrap-local
  • local bootstrap が投入する seed post / attachment / banner option まで hard fail します。
  • local
  • local 開発・CI 用です。bootstrap-local と同じく local seed を厳密に監査します。
  • remote
  • staging / production 用です。fixed route page と必須構造は監査しますが、local 専用 seed fixture の一致は要求しません。

最短診断フロー

  1. local なら just wp-drift-audit
  2. staging / production なら just wp-drift-audit-vps <env>
  3. JSON の failures[]checks[] を見て、どの構造差分かを特定する
  4. 差分の種類に応じて、ACF JSON 更新、bootstrap 再実行、または VPS の設定/コンテンツ修正へ進む

典型例

ACF JSON 更新後に local が不安定

  • just wp-drift-audit
  • acf-field-groups / acf-post-type-keys / acf-taxonomy-keys の missing を確認
  • 必要なら just wp-acf-sync
  • その後に just wp-bootstrap-verify

staging / production の WordPress は開くが構造が崩れている

  • just wp-drift-audit-vps staging
  • required-pluginsrequired-pages が fail していないか確認
  • ACF JSON 側の差分なら plugin 配備状態と deploy ref を確認
  • option 差分なら /opt/wordpress/.env と bootstrap 同期対象 option を確認

注意

  • WordPress drift audit は read-only です。DB を直接修復しません。
  • remote profile は local seed fixture を監査しないため、運用環境の drift と local fixture 不一致を混同しません。
  • bootstrap-verify の判定ロジックは wp-drift-audit.php に集約されています。bootstrap だけ通っても、必要に応じて just wp-drift-audit を追加で実行してください。
  • GitHub Actions の wordpress-drift-audit.yml は local bootstrap 後の契約確認、wordpress-drift-monitor.yml は live VPS の read-only 監査を担当します。
  • live 監査は /wp-json/ritsubi/v1/drift-auditX-Ritsubi-Api-Token: $CMS_API_TOKEN で呼びます。SSH 鍵は不要です。