Bug(バグ) #746
Failed sfDoctrineDataLoadTask when deleting "banner" (sfDoctrineDataLoadTaskが"banner"の削除時に失敗する)
Start date:
2010-02-24
Due date:
% Done:
0%
3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)
Description
現象¶
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で代用するとテストを走らせることはできる。
History
#1
Updated by Kousuke Ebihara almost 12 years ago
- 3.6 で発生するか set to Yes
#2
Updated by Rimpei Ogawa almost 12 years ago
- 3.6 で発生するか changed from Yes to No
#3
Updated by kaoru n over 2 years ago
- Target version set to OpenPNE 3.10.x