Skip to content

本番環境移行手順(概要)

本番環境へ移行する際の全体像と実行順序をまとめたドキュメントです。各ステップの具体的な手順は、リンク先の個別ファイルを参照してください。

今回の移行では PHP バージョンアップが必要なため、作業中はサイトを停止します。 停止・PHP アップグレード・再開の手順および懸念点は サーバー停止・PHP バージョンアップ手順 を参照してください。

Issue #1485: テーブル作成は dbDelta ベースの Installer(core_src/Infrastructure/Database/)が自動実行するため、通常運用では手動 CREATE TABLE は不要 です。管理画面初回アクセス時にスキーマが自動で揃います。ただし .maintenance による停止中は wp-admin も 503 になり admin_init が実行されないため、停止中に DB 変更を終える場合は下記「緊急時の手動テーブル作成」の SQL を使用してください。

前提

実行順序の一覧

  1. 事前準備・サーバー停止(バックアップ取得 → サイト停止 → PHP バージョンアップ) 詳細は サーバー停止・PHP バージョンアップ手順

  2. コード・デプロイ 詳細は 本番環境デプロイ

  3. PHP-DI キャッシュ削除 デプロイ手順(activate.sh)にキャッシュ削除が含まれている場合は自動で実行される。activate.sh を使わない場合は、管理画面アクセス前に手動で PHP-DI キャッシュを削除すること。対象: イベントマスタ、機種表示マッピング、ヒートマップ島図、P-WORLDメールアーカイブ。

  4. テーブル作成 通常運用では WordPress 管理画面を開くと、AdminDatabaseInstaller::ensure_all()admin_init で実行され、管理画面経由で ensure する全テーブルが自動作成される。各 Installer はバージョン管理付きで冪等に動作する。.maintenance 停止中に作業する場合は管理画面アクセスが 503 で止まるため、下記「緊急時の手動テーブル作成」の SQL を実行する。

  5. 初期データ投入(Installer 対象外・手動)

  6. P-WORLDメールアーカイブ設定wp-config.php に IMAP 定数(PWORLD_IMAP_HOST / PWORLD_IMAP_USER / PWORLD_IMAP_PASSWORD)を設定。 詳細は P-WORLDメールアーカイブ 本番環境でのテーブル作成手順

  7. 日別記事の下書き自動作成(任意 / 5b) WordPress 管理画面で「日別記事」→「自動作成(21:00)」を開き、有効にするをオンにする。サイトのタイムゾーンで毎日 21:00に、翌日の考察日付(kousatsu_date)の投稿がまだ無い場合のみ、下書きが 1 件追加される。WP-Cron はアクセス発火のため遅延しうる。本番ではサーバー cron による wp-cron.php の呼び出しや DISABLE_WP_CRON と代替スケジューラの併用を検討すること。

  8. サイト再開(動作確認 → .maintenance ファイル削除) 詳細は サーバー停止・PHP バージョンアップ手順

緊急時の手動テーブル作成

Installer による自動作成が何らかの理由で失敗した場合、または .maintenance 停止中にテーブル作成を完了する場合は、各 *Installer.php 内の dbDelta 用 CREATE 文字列を接頭辞に合わせて MySQL で実行するか、手順書本文の CREATE TABLE ブロックを参照して手動実行できる。

テーブルDDL 正本・手動実行の参照先
db_event_masterEventMasterInstaller.php
db_what_day_master, db_daily_article_what_dayWhatDayMasterInstaller.phpDailyArticleWhatDayInstaller.phpwhat-day-tables-production.md の CREATE ブロック
db_daily_article_emojiDailyArticleEmojiInstaller.phpdaily-article-emoji-table-production.md
db_daily_article_considerationDailyArticleConsiderationInstaller.php
db_kishu_display_mappingKishuDisplayMappingInstaller.phpkishu-display-mapping-table-production.md
db_heatmap_layoutHeatmapLayoutInstaller.phpheatmap-layout-migration.md
pworld_mail_archivePworldMailArchiveInstaller.phppworld-mail-archive-table-production.md
pworld_capture_imagePworldCaptureImageInstaller.php(v2、source_mail_ids_json を含む)

関連