Appearance
〇〇の日マスタ(db_what_day_master)導入手順
〇〇の日マスタテーブル(db_what_day_master)に、雑学ネタ帳「今日は何の日」の記念日データを投入する手順です。Issue #1092 に対応します。
スキーマ詳細は 〇〇の日専用テーブル設計(スキーマ)— 準備中(本ドキュメント内や関連設計資料を参照してください)。
概要
- テーブル:
{prefix}db_what_day_master(〇〇の日の名称マスタ) - 必要な作業:
- コード反映(デプロイ or git pull)
- PHP-DI キャッシュ削除(DI 変更のため)
- テーブル作成 — 通常は管理画面アクセス時に自動(Issue #1485)。
AdminDatabaseInstaller::ensure_all()がadmin_initでdbDeltaにより{prefix}db_what_day_masterを作成します。Installer が失敗した場合は 〇〇の日専用テーブル 本番環境でのテーブル作成手順 の CREATE ブロック、またはWhatDayMasterInstaller.php/DailyArticleWhatDayInstaller.phpを参照してください。.maintenanceで本番サイトを停止している間に作成する場合も、管理画面ではなくこれらを手動実行してください。 - 初期データ投入(雑学ネタ帳から取得して投入)
- 今後の運用(一覧・追加・編集・削除・表示切替)は 〇〇の日マスタ運用ガイド を参照してください。
利用条件・注意事項
- データ取得元: 雑学ネタ帳「今日は何の日・明日は何の日」。実行前に雑学ネタ帳の利用規約および robots.txt を確認のうえ、利用範囲内で実行してください。
- 本スクリプトは User-Agent にサイト名・URL を含めず 汎用識別子のみを使用し、リクエスト間に遅延を入れて負荷に配慮しています。
- 再実行防止: 実行済みフラグ(
wp_optionsのwhat_day_master_seed_executed)でガードしています。再実行する場合は該当オプションを削除してから実行してください(下記「再実行する場合」参照)。
ローカル環境での導入手順
1. コードを取得
bash
# プロジェクトルート(myCustom)で
git pull origin develop
# または対象ブランチを checkout2. PHP-DI キャッシュを削除
bash
# myCustom ディレクトリで
./bin/clear-php-di-cache.sh- キャッシュファイルは
wp-content/cache/php-di/CompiledContainer.phpです。
3. 管理画面を開く(テーブル自動作成)
manage_options 権限のユーザーで WordPress 管理画面にアクセスしてください。admin_init で AdminDatabaseInstaller::ensure_all() が実行され、WhatDayMasterInstaller が dbDelta により {prefix}db_what_day_master を冪等に作成します(本番移行手順(参考・目次) の推奨順と同様、コード反映・PHP-DI キャッシュ削除の後に実施してください)。
- 緊急リカバリ(自動作成が失敗したとき): 〇〇の日専用テーブル 本番環境でのテーブル作成手順 の CREATE TABLE を接頭辞に合わせて実行するか、各 Installer の CREATE 定義を参照してください。
4. 初期データ投入
注意: 複数のプロセスから同時に実行しないでください。外部サイトへ HTTP リクエストを行うため、ネットワークが利用可能な環境で実行してください。
WP-CLI が利用可能な場合(WordPress のドキュメントルートが app/public のとき)
接続手順は WP-CLI 接続手順 を参照してください。
bash
cd /path/to/app/public
wp eval-file wp-content/themes/cocoon-child-master/myCustom/scripts/seed-what-day-master-from-zatsuneta.php- 成功時は
Processed N unique names, inserted M new rows ...のような出力が表示されます。 - 再実行する場合: オプション
what_day_master_seed_executedを削除すれば再度実行できます。- WP-CLI:
wp option delete what_day_master_seed_executed - MySQL:
DELETE FROM wp_options WHERE option_name = 'what_day_master_seed_executed';(接頭辞がwp_でない場合はテーブル名を読み替えてください)
- WP-CLI:
Local by Flywheel で「Error establishing a database connection」が出る場合: Local のサイトシェル内で上記コマンドを実行してください。WP-CLI 接続手順 を参照してください。
ローカルでホストの PHP を使う場合(WP-CLI/サイトシェルが使えないとき): Local のサイトシェルで DB 接続エラーになる場合や、サイトシェルで PHP 拡張のアーキテクチャエラー(opcache / xdebug / imagick 等)が出る場合(例: Apple Silicon で Local 付属の x86_64 PHP を使っているとき)は、ホストの PHP(例: Homebrew の arm64 PHP)からスクリプトを直接実行できます。WordPress のドキュメントルート(例: app/public)で次を実行してください。
bash
# 実行場所: WordPress のドキュメントルート(例: app/public)
/opt/homebrew/bin/php -r "require 'wp-load.php'; require 'wp-content/themes/cocoon-child-master/myCustom/scripts/seed-what-day-master-from-zatsuneta.php';"/opt/homebrew/bin/phpは Homebrew で入れた PHP のパスです。環境によりwhich phpで確認したパスに読み替えてください。- 成功時は
Processed N unique names, inserted M new rows ...のような出力が表示されます。
本番環境(ConoHa WING 等)での導入手順
本番移行手順の一覧は 本番移行手順(参考・目次) を参照。全体の流れは 本番環境移行手順(概要) にまとめてあります。
1. デプロイ
bash
# プロジェクトルート(myCustom)で
./bin/build.sh
./bin/deploy.sh2. 本番で PHP-DI キャッシュを削除
サーバー上の WordPress の wp-content ディレクトリ で:
bash
rm -f cache/php-di/CompiledContainer.php3. 本番で管理画面を開く(テーブル自動作成)
デプロイおよび PHP-DI キャッシュ削除の後、manage_options 権限のユーザーで本番の WordPress 管理画面にアクセスしてください。AdminDatabaseInstaller::ensure_all() により {prefix}db_what_day_master が自動作成されます。
注意:
.maintenanceによる WordPress メンテナンスモード中はwp-adminも 503 になり、admin_initが実行されません。本番移行の停止中にテーブル作成を完了する場合は、管理画面アクセスではなく各 Installer の定義、または 〇〇の日専用テーブル 本番環境でのテーブル作成手順 を本番接頭辞に合わせて手動実行してください。
- 緊急リカバリ: 〇〇の日専用テーブル 本番環境でのテーブル作成手順 の手動 CREATE TABLE、または各 Installer の定義。
4. 本番で初期データ投入
注意: 複数のプロセスから同時に実行しないでください。
方法 A: WP-CLI がある場合
接続手順は WP-CLI 接続手順 を参照してください。本番の WordPress ドキュメントルート で:
bash
wp eval-file wp-content/themes/cocoon-child-master/myCustom/scripts/seed-what-day-master-from-zatsuneta.php方法 B: WP-CLI が無い場合
本番サーバーに SSH 接続したあと、WordPress のドキュメントルートに移動し:
bash
cd ~/public_html/あなたのドメイン
php -r "require 'wp-load.php'; require 'wp-content/themes/cocoon-child-master/myCustom/scripts/seed-what-day-master-from-zatsuneta.php';"- ドキュメントルートのパスおよびテーマパスは本番の構成に合わせて変更してください。
- 成功時は
Processed N unique names, inserted M new rows ...と表示されます。
手順一覧(チェック用)
| 作業 | ローカル | 本番(ConoHa WING 等) |
|---|---|---|
| コード反映 | git pull / git checkout | ./bin/build.sh → ./bin/deploy.sh 等 |
| DI キャッシュ削除 | ./bin/clear-php-di-cache.sh | サーバーで rm cache/php-di/CompiledContainer.php |
| テーブル作成 | 管理画面アクセスで自動(緊急時は what-day-tables-production.md / 各 Installer) | 通常は管理画面アクセスで自動(.maintenance 停止中・Installer 失敗時は手動 CREATE) |
| 初期データ投入 | wp eval-file ... またはホスト PHP(詳細) | 本番: WP-CLI または php -r "require 'wp-load.php'; require '.../seed-what-day-master-from-zatsuneta.php';" |
関連ドキュメント
- 〇〇の日マスタ運用ガイド — 日常運用(管理画面・一覧・追加・編集・削除)
- 〇〇の日専用テーブル設計(スキーマ) — 準備中(本ドキュメント内や関連設計資料を参照してください)
- 〇〇の日専用テーブル 本番環境でのテーブル作成手順
- 本番環境デプロイ
- AGENTS.md — DI 変更時の PHP-DI キャッシュ削除