プロジェクト

全般

プロフィール

Bug(バグ) #746

Failed sfDoctrineDataLoadTask when deleting "banner" (sfDoctrineDataLoadTaskが"banner"の削除時に失敗する)

Eitarow Fukamachi約14年前に追加. 約4年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2010-02-24
期日:
進捗率:

0%

3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)

説明

現象

sfDoctrineDataLoadTaskを走らせると以下の例外が発生する。

Doctrine_Connection_Mysql_Exception: SQLSTATE[23000]: Integrity constraint violation: 1
451 Cannot delete or update a parent row: a foreign key constraint fails (`gdo`.`banner_
use_image`, CONSTRAINT `banner_use_image_banner_id_banner_id` FOREIGN KEY (`banner_id`) 
REFERENCES `banner` (`id`)). Failing Query: "DELETE FROM banner" 

原因

banner_use_imageのスキーマ定義で、onDeleteがついていないため。

修正内容

schema.ymlのBannerUseImageのrelationsのそれぞれのテーブルにonDelete属性をつける。cascadeにするかset nullにするかは実装を見て決める。

応急策

sfDoctrineDataLoadTaskはプラグインのテストでよく使われているため、プラグインのテストを走らせるときに失敗する。
応急処置としてbootstrap/database.phpのsfDoctrineDataLoadTaskをsfDoctrineBuildTaskで代用するとテストを走らせることはできる。

履歴

#1 Kousuke Ebihara13年以上前に更新

  • 3.6 で発生するかYes にセット

#2 Rimpei Ogawa13年以上前に更新

  • 3.6 で発生するかYes から No に変更

#3 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.10.x にセット

他の形式にエクスポート: Atom PDF