Appearance
本番移行手順(参考・目次)
注記: 本番への初回スキーマ反映は完了済みです。初期データ投入など未了の作業は各導入手順を参照してください。このディレクトリは参考保存として残しています。DDL の正本は
core_src/Infrastructure/Database/配下の各*Installer.php(dbDelta用の CREATE 文字列)です。緊急時は当該クラスから SQL をコピーするか、手順書本文の CREATE TABLE ブロックを参照してください。
本番移行の全体像と実行順序は 本番環境移行手順(概要) を参照してください。各手順の詳細はリンク先の個別ファイルを参照してください。
本番環境に反映する DB 変更(テーブル追加)と、推奨実行順序の一覧です。
Issue #1485 による変更: テーブル作成は
core_src/Infrastructure/Database/配下の Installer クラスがdbDeltaで自動実行します。管理画面を開くだけでスキーマが揃うため、通常運用では手動 CREATE TABLE は不要 です。個別手順書の CREATE TABLE ブロックや各*Installer.php内のdbDelta用 CREATE 文字列は、Installer が失敗した場合の緊急リカバリ用です。ただし、.maintenanceによる WordPress メンテナンスモード中はwp-adminも 503 になり、Installer は実行されません。停止中に DB 変更まで完了する本番移行では、上記を参照して手動実行してください。
対象テーブル
- イベントマスタ — テーブル
db_event_masterDDL 正本:EventMasterInstaller.php。手順・初期データは event-master-introduction-guide.md(Issue #979)を参照。 - 〇〇の日専用 — テーブル
db_what_day_master,db_daily_article_what_daywhat-day-tables-production.md(Issue #1072)を参照。 - 日別記事・絵文字 — テーブル
db_daily_article_emojidaily-article-emoji-table-production.md(Issue #1081 / PR #1088)を参照。 - 日別記事・考察日時 — テーブル
db_daily_article_considerationIssue #1485 によりDailyArticleConsiderationInstallerが管理画面アクセス時に自動作成。論理定義は カスタムアプリケーションテーブル(DBML)(集約ファイル:custom-tables.dbml)。DDL 正本:DailyArticleConsiderationInstaller.php。 - 機種表示マッピング — テーブル
db_kishu_display_mappingkishu-display-mapping-table-production.md を参照。 - ヒートマップ島図 — テーブル
db_heatmap_layout../environment/heatmap-layout-migration.md(Issue #1243)を参照。 - P-WORLDメールアーカイブ — テーブル
pworld_mail_archive(接頭辞付きでwp_pworld_mail_archive等) pworld-mail-archive-table-production.md(PR #1428 / Issue #1416)を参照。 - P-WORLDキャプチャ画像 — テーブル
pworld_capture_image(接頭辞付きでwp_pworld_capture_image等) P-WORLDメールアーカイブと併せて Installer で自動作成。DDL 正本:PworldCaptureImageInstaller.php(v2 相当のsource_mail_ids_jsonを含む)。 - 誕生日テーブル(既存テーブルの変更) — テーブル
db_birthdayUNIQUE(month, day, chara, divi, title) は管理画面初回読み込み時にBirthdaySeedInstallerが自動適用。詳細は birthday-table-unique-deduplication.md(Issue #2123)を参照。
本番での推奨順序
コード・デプロイ本番環境デプロイ に従い、ビルド・デプロイを実施する。
PHP-DI キャッシュ削除 デプロイ手順(activate.sh)にキャッシュ削除が含まれている場合は自動で実行される。activate.sh を使わない場合は、管理画面アクセス前に手動で PHP-DI キャッシュを削除すること。対象: イベントマスタ、機種表示マッピング、ヒートマップ島図、P-WORLDメールアーカイブ。
テーブル作成 通常稼働中の環境では WordPress 管理画面にアクセスする。
admin_initフックでAdminDatabaseInstaller::ensure_all()が実行され、以下のテーブルが自動作成される(core_src/Infrastructure/Database/配下の各 Installer がdbDelta+ バージョン管理で冪等に実行)。.maintenance停止中の本番移行では管理画面アクセスが 503 で止まるため、個別手順書の CREATE TABLE SQL を手動実行する。db_event_masterdb_what_day_masterdb_daily_article_what_daydb_daily_article_emojidb_daily_article_considerationdb_kishu_display_mappingdb_heatmap_layoutpworld_mail_archivepworld_capture_image
初期データ投入(手動) 以下は Installer の責務外。手順書または管理画面から実施する。
- イベントマスタ: イベントマスタ導入手順(本番環境) に従い初期データを投入。
- 機種表示マッピング: 管理画面から「登録データに反映」を実行。詳細は kishu-display-mapping-table-production.md を参照。
- ヒートマップ島図: 既存ファイルベースの島図は管理画面から任意でDBに取り込む。詳細は ヒートマップ島図テーブル 本番移行手順 を参照。
P-WORLDメールアーカイブ設定
wp-config.phpに IMAP 定数(PWORLD_IMAP_HOST/PWORLD_IMAP_USER/PWORLD_IMAP_PASSWORD)を設定する。初期データは不要で、管理画面「今すぐ取得・保存する」で取り込む。 手順は pworld-mail-archive-table-production.md を参照。日別記事の下書き自動作成(任意 / 5b) 管理画面「日別記事」→「自動作成(21:00)」で有効化する。サイトのタイムゾーンで毎日 21:00 に翌日分の下書きを自動作成する(未作成のときのみ)。WP-Cron の確実な発火については 本番環境移行手順(概要) の該当節を参照。
誕生日テーブル(任意)
db_birthdayの UNIQUE(month, day, chara, divi, title) はBirthdaySeedInstallerが管理画面初回読み込み時に自動適用。詳細は birthday-table-unique-deduplication.md を参照。
関連ドキュメント
- サーバー停止・PHP バージョンアップ手順(事前準備・懸念点)
- 本番環境デプロイ
- イベントマスタ導入手順(ローカル・本番)
- 本番環境への接続方法