Утро,
У меня возникли некоторые проблемы при создании таблиц / загрузочных устройств.
(symfony 1.4.6 с прилагаемым Doctrine 1.2.3 (?))
Таблицы (упрощенно):
Horseman:
tableName: Horseman
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
name: { type: string(100), notnull: true }
Stable:
tableName: Stable
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
info: { type: clob }
id_owner: { type: integer(4), unsigned: true }
relations:
Horseman: { local: id_owner, foreign: id }
Horses:
tableName: Horses
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true, unsigned: true }
name: { type: string(100), notnull: true }
id_owner: { type: integer(4), unsigned: true }
id_stable: { type: integer(4), unsigned: true }
relations:
Horseman: { local: id_owner, foreign: id }
Stable: { local: id_stable, foreign: id }
У «Всадника» нет никаких зависимостей
У «Конюшни» есть один «Всадник»
У «Лошадей» есть один «Всадник» и одна «Конюшня»
Светильники:
Horseman:
Hector:
name: Hector
Stable:
StableA:
info: Lorem Ipsum Dolor Sit Amet
id_owner: Hector
Horses:
Ed:
name: Ed
id_owner: Hector
id_stable: StableA
При вставке светильников:
$ php symfony doctrine:build --all --and-load
я получаю нарушение ограничения:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`issuetracker/Stable`, CONSTRAINT `Stable_id_owner_Horseman_id` FOREIGN KEY (`id_owner`) REFERENCES `Horseman` (`id`))
"Всадник""запись вставляется без проблем.
Вставка двух других записей вручную также не является проблемой:
INSERT INTO Stable (id,info,id_owner,created_at,updated_at) VALUES (null,"foo",1,NOW(),NOW())
INSERT INTO Horses (id,name,id_owner,id_stable,created_at,updated_at) VALUES (null,"foo",1,1,NOW(),NOW())
(Сохраняет ли Symfony созданные операторы вставки где-нибудь?)
Если я правильно понял, Doctrine должна сама позаботиться о том, чтобы вводить приказы (?), Так как в любом случае я даю правильный приказ, это не должно быть проблемой ..
В надежде, что япросто не видел или не получил мелочь, один из вас, милые ребята, скажет мне, почему я получаю это нарушение ограничения и / или чтеперь, пожалуйста, исправьте ..
Спасибо.