Skip to content

日別記事・絵文字テーブル 本番環境でのテーブル作成手順

Issue #1081 / PR #1088 に対応した、本番環境に db_daily_article_emoji を追加する手順です。

設計の詳細は daily-article-emoji-feature-design.md を参照してください。

対象テーブル

  • db_daily_article_emoji — 日別記事・ホール別絵文字(投稿ごと・ホールごとの絵文字テキスト)

本番で実施する作業

本手順ではテーブル作成のみ行います。 日別記事の保存処理で post meta(island_emoji / espasu_emoji / bigapple_emoji)から専用テーブルへ同期されるため、空のテーブルで開始して問題ありません。テーブル作成後、既存・新規の日別記事を保存し直すと自動的にデータが投入されます。

実行順序

  1. テーブル db_daily_article_emoji を作成する

1. db_daily_article_emoji の作成

本番の MySQL(phpMyAdmin や SSH 経由など)に接続し、本番の DB 接頭辞(多くの場合は wp_)に合わせて SQL を実行します。

  • 接頭辞が wp_ でない場合は、以下の SQL 内の wp_ を本番の接頭辞に置換してから実行してください。
  • または DailyArticleEmojiInstaller.phpdbDelta 用 CREATE 定義を接頭辞に合わせて実行してください。
sql
CREATE TABLE `wp_db_daily_article_emoji` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL COMMENT '日別記事(daily_article)の投稿ID',
  `hall` varchar(50) NOT NULL COMMENT 'ホール識別子(HallEnum: island / espasu / bigapple)',
  `emoji_text` varchar(500) NOT NULL DEFAULT '' COMMENT '絵文字および改行を含む複数行テキスト(最大500文字)',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登録日時',
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_post_hall` (`post_id`, `hall`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日別記事・ホール別絵文字';

注意事項

  • テーブル作成前に、当該機能(PR #1088 など)マージ済みのコードが本番にデプロイされていることを確認してください(DatabaseTableConstantsDAILY_ARTICLE_EMOJI が含まれている必要があります)。
  • テーブル未作成のままコードのみデプロイした状態でも、保存処理は動作します(テーブル存在確認で同期をスキップするフェイルセーフあり)。本番で絵文字を専用テーブルに保持するには、上記のテーブル作成が必要です。

ロールバック方針

テーブル作成を取りやめる場合や、作成に失敗した状態を解消する場合は、該当テーブルを DROP してください。

  • 作成時と同様に、本番の DB 接頭辞(例: wp_)を付けた実テーブル名を対象に DROP を実行してください。

  • 接頭辞が wp_ でない場合は、以下のテーブル名中の wp_ を本番の接頭辞に読み替えてください。

  • wp_db_daily_article_emoji を DROP する(例: DROP TABLE IF EXISTS wp_db_daily_article_emoji;

本番で既に運用を開始している場合(日別記事の保存により当該テーブルにデータが投入されている場合)は、DROP 前に必ずデータ退避(エクスポート)やバックアップ取得を検討のうえ実行してください。空のテーブルに限り、DROP によるデータ損失は発生しません。

関連