2017-01-17 3 views
1

Я использую миграцию, созданную вверх() так:Yii2 - миграция, ограничение внешнего ключа не удается

$this->addColumn('presentation_place', 'user_id', $this->integer()->notNull()->after('post_code')); 
$this->addForeignKey('fk_presentation_place_user_id', 'presentation_place', 'user_id', 'user', 'id', 'CASCADE', 'CASCADE'); 

И в то время как Yii/перенастройки Я получаю ошибку

Невозможно добавить или обновить дочерняя строка: ограничение внешнего ключа завершается с ошибкой ('crm'. '# sql-1524_46f', CONSTRAINT 'fk_presentation_place_user_id' ИНОСТРАННЫЙ КЛЮЧ ('user_id') ИДЕНТИФИКАТОРЫ '' '' '' '' '' УДАЛИТЬ КАСКАД ON UPDATE CASCADE)

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

ответ

2

Из сообщения об ошибке я думаю, что добавление внешнего ключа было успешным, но у вас есть строки в user и presentation_place.

Попробуйте запустить эту миграцию с пустыми таблицами или установить значение по умолчанию, которое существует в указанной таблице

defaultValue(ALREADY_EXISTING_ID) 
+1

Ничего себе, я не считаю, что это может работать, но это действительно решить мою проблему. Я имею в виду defaultValue(). Спасибо Золтану! :) – Olga