Как редактировать исходную таблицу в миграции Laravel? - PullRequest
0 голосов
/ 07 сентября 2018

У меня вопрос, как отредактировать исходную таблицу в миграции laravel?

То есть, предположим, что две таблицы имеют Teacher и Children. Также как у таблицы Student есть внешний ключ в качестве TeacherId. (Teacher_id относится к TeacherId в таблице Teacher) По какой-то причине я хочу удалить таблицу учителя или отредактировать таблицу учителя. Тогда общая ошибка возникает без исходной таблицы ключей, не может иметь внешний ключ.

Так как я могу удалить таблицу учителя или отредактировать таблицу учителя без удаления таблицы ученика? Есть какой-нибудь способ сделать это?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Вы должны кодировать ваш laravel migrations таким образом, чтобы вы могли вернуть все назад, по методу down().

Иногда вы застреваете, так что команда migrate или migrate:rollback выдает ошибку.

Затем вам следует вручную изменить структуру вашей базы данных (используя команду mysql, верстак или любые другие инструменты sql), чтобы ваши миграции снова заработали ...

И, наконец, нацелен на ваш вопрос ...

Вы не можете создать таблицу и добавить внешние ограничения в одном коммите в db, поэтому для этого вам необходимо добавить новое объявление в свою миграцию up(), например Table:... после Schema:create... и добавьте здесь свои внешние ключи. Не забудьте сделать обратное в down() методе ...

0 голосов
/ 07 сентября 2018

Сначала вам нужно сбросить внешний ключ на таблицу ученика (или, может быть, полностью на столбец teacher_id, если у вас больше нет таблицы учителя), затем вы сможете удалить таблицу учителя, если больше не ссылаются на внешние ключи. Студенческий стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...