操作
Bug(バグ) #1483
完了マイグレート後のDB構造が新規構築時と一致しない
開始日:
2010-08-05
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
Yes
[QA]バグ通知済:
はい
3.8 で発生するか:
opCommunityTopicPlugin 絞込条件:
説明
Overview (現象)¶
post, file に関してのインデックスとカスケーディングデリートの情報がマイグレート時に付加されていない。
新規インストール時¶
mysql> SHOW CREATE TABLE community_topic_comment_image\G *************************** 1. row *************************** Table: community_topic_comment_image Create Table: CREATE TABLE `community_topic_comment_image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `post_id` int(11) NOT NULL, `file_id` int(11) DEFAULT NULL, `number` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_number_idx` (`id`,`number`), KEY `post_id_idx` (`post_id`), KEY `file_id_idx` (`file_id`), CONSTRAINT `community_topic_comment_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE, CONSTRAINT `community_topic_comment_image_post_id_community_topic_comment_id` FOREIGN KEY (`post_id`) REFERENCES `community_topic_comment` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
マイグレート時¶
mysql> SHOW CREATE TABLE community_topic_comment_image\G *************************** 1. row *************************** Table: community_topic_comment_image Create Table: CREATE TABLE `community_topic_comment_image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `post_id` int(11) NOT NULL, `file_id` int(11) DEFAULT NULL, `number` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_number` (`id`,`number`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1
Causes (原因)¶
マイグレーション側で新規インストール時とテーブル構造を合わせていないため。
Way to fix (修正内容)¶
- post_id のインデックスを追加
- file_id のインデックスを追加
- post_id の外部キー制約を追加
- file_id の外部キー制約を追加
文字コードが一致していないが、
文字列が入るカラムが存在しないため対応は行わない。
操作