2010-08-17 2 views
0

Я использую symfony 1.4 и doctrine. Я провел последние пару дней, играя с моей схемой, и я получил ее, чтобы загрузить/построить/вести себя правильно, но только на моей локальной машине. Когда я копирую файлы в учетную запись Dreamhost, измените конфигурацию, чтобы разрешить подключение к этой базе данных (и ничего больше). Я получаю следующую ошибку, пытающуюся удалить что-то, что должно каскадироваться (и делает, когда я удаляю его на своей локальной машине) :Схема Symfony работает на моем локальном сервере, но дает проблемы с ограничениями foreign_key, перемещающимися в Dreamhost

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent 
row: a foreign key constraint fails (`ezshirtdb`.`item_options`, CONSTRAINT 
`item_options_item_id_items_id` FOREIGN KEY (`item_id`) REFERENCES `items` (`id`)) 

Это моя схема: http://pastie.org/1097068
Это мои светильники: http://pastie.org/1097072

таблицы в БД Dreamhost являются все InnoDB, сама база данных, как представляется, MYISAM. Это проблема? В этом случае я не могу удалить Item # 1, у которого есть ItemOptions, связанный с ним, или с любой из категорий (которые связаны с элементами).

Я полностью потерял и мог использовать пару указателей. Благодарю вас.

ответ

0

Я получил ошибки, подобные этому некоторое время назад, и это связано с тем, что внешний ключ был другим целым размером после его создания.

Взгляните на базу данных и убедитесь, что поле Items.ID и поле ItemOptions.item_id являются одним и тем же типом.

+0

Я вернулся через схему. Возможно, это был несогласованный ключ, но я не уверен. Я уделял более пристальное внимание созданию отношений: должным образом, что я чувствовал, было проблемой. Работает сейчас, спасибо, что указал на схему. –

+0

Отлично. Файл schema.yml является довольно строгим и темпераментным. Рад, что вы поняли! – jgallant

0

Удалите базу данных и создайте ее еще раз. MyISAM или InnoDB, не имеет значения.