操作
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 の外部キー制約を追加
文字コードが一致していないが、
文字列が入るカラムが存在しないため対応は行わない。
Masato Nagasawa さんが13年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Masato Nagasawa にセット
Masato Nagasawa さんが13年以上前に更新
修正後のテーブル構造
mysql> SHOW CREATE TABLE community_topic_image\G *************************** 1. row *************************** Table: community_topic_image Create Table: CREATE TABLE `community_topic_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`), KEY `post_id_idx` (`post_id`), KEY `file_id_idx` (`file_id`), CONSTRAINT `community_topic_image_post_id_community_topic_id` FOREIGN KEY (`post_id`) REFERENCES `community_topic` (`id`) ON DELETE CASCADE, CONSTRAINT `community_topic_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) 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`), KEY `post_id_idx` (`post_id`), KEY `file_id_idx` (`file_id`), CONSTRAINT `community_topic_comment_image_post_id_community_topic_comment_id` FOREIGN KEY (`post_id`) REFERENCES `community_topic_comment` (`id`) ON DELETE CASCADE, CONSTRAINT `community_topic_comment_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 mysql> SHOW CREATE TABLE community_event_image\G *************************** 1. row *************************** Table: community_event_image Create Table: CREATE TABLE `community_event_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`), KEY `post_id_idx` (`post_id`), KEY `file_id_idx` (`file_id`), CONSTRAINT `community_event_image_post_id_community_event_id` FOREIGN KEY (`post_id`) REFERENCES `community_event` (`id`) ON DELETE CASCADE, CONSTRAINT `community_event_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 mysql> SHOW CREATE TABLE community_event_comment_image\G *************************** 1. row *************************** Table: community_event_comment_image Create Table: CREATE TABLE `community_event_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`), KEY `post_id_idx` (`post_id`), KEY `file_id_idx` (`file_id`), CONSTRAINT `community_event_comment_image_post_id_community_event_comment_id` FOREIGN KEY (`post_id`) REFERENCES `community_event_comment` (`id`) ON DELETE CASCADE, CONSTRAINT `community_event_comment_image_file_id_file_id` FOREIGN KEY (`file_id`) REFERENCES `file` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1
Masato Nagasawa さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
50f5fba09ade39606fb2b5c1e9184a98684262e1 にてコミットしました。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
変更点確認しました。OKです。
文字コードが一致していないが、
文字列が入るカラムが存在しないため対応は行わない。
了解です。
Masato Nagasawa さんが13年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
リビジョンの更新をしていない問題があったため下記リビジョンで修正しました。
50ce771ed49dc2957e04b87c6130769d1b925a78
レビュー後に申し訳ないのですが、再レビューをお願いします。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
修正ありがとうございます。OKです。
Yuma Sakata さんが13年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
操作