Bug(バグ) #2433
1.0.2 で追加されたマイグレートスクリプト(リビジョン番号 6)の考慮不足により、マイグレートに失敗することがある
100%
説明
#1483 で、新規インストール時には追加されるが過去バージョンからのマイグレート時には追加されなかった post_id および file_id の外部キー制約(とインデックス)の追加をおこない、過去バージョンからのマイグレートをおこなった後の DB 構造と新規インストール時の DB 構造を一致させるためのマイグレートスクリプト 006_update_op_community_topic_plugin_1_0_2.php が追加されたが、このスクリプトの実装は考慮が不足しており、マイグレートに失敗することがある。
post_id や file_id が存在しなかった過去バージョンからマイグレートをおこなった環境ではこのマイグレートスクリプトは成功するが、このマイグレートスクリプトによって追加しようとしている外部キーやインデックスが既に存在する状態を考慮していないため、 post_id や file_id が追加されたあとのバージョンを新規にインストールして運用している SNS でこのマイグレートスクリプトを実行すると失敗してしまう。
post_id や file_id の外部キー制約などが既に存在する場合、このマイグレートスクリプトの処理を実行する必要はないため、マイグレートスクリプト内で post_id や file_id の外部キーなどの存在確認をおこなうように修正する。
関連するチケット
履歴
#1 Yuya Watanabe が12年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Yuya Watanabe にセット
#2 Yuya Watanabe が12年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
下記コミットで修正しました.外部キーのインデックスを確認することで存在確認を行なっています.
https://github.com/tejimaya/opCommunityTopicPlugin/commit/7cc6441752d01fb71b706b52849883eacc0f48b0
#3 Kousuke Ebihara が12年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
#4 Yuya Watanabe が12年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
definitionの位置を逆にしていたので入れ替えを行いました.
https://github.com/tejimaya/opCommunityTopicPlugin/commit/a57e54ef93122160e4f70c11895c645a9bdbf5da
#5 Kousuke Ebihara が12年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
#6 Kousuke Ebihara が12年以上前に更新
- 360対象 を 3.6.0 から RC2 に変更
#7 Mutsumi Imamura が12年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
動作確認しました。OKです。