Appearance
日別記事・絵文字テーブル 本番環境でのテーブル作成手順
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)から専用テーブルへ同期されるため、空のテーブルで開始して問題ありません。テーブル作成後、既存・新規の日別記事を保存し直すと自動的にデータが投入されます。
実行順序
- テーブル
db_daily_article_emojiを作成する
1. db_daily_article_emoji の作成
本番の MySQL(phpMyAdmin や SSH 経由など)に接続し、本番の DB 接頭辞(多くの場合は wp_)に合わせて SQL を実行します。
- 接頭辞が
wp_でない場合は、以下の SQL 内のwp_を本番の接頭辞に置換してから実行してください。 - または
DailyArticleEmojiInstaller.phpのdbDelta用 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 など)マージ済みのコードが本番にデプロイされていることを確認してください(
DatabaseTableConstantsにDAILY_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 によるデータ損失は発生しません。