Яндекс.Метрика
qr-код - Как-то так стрелка - Как-то так
Ведущий экономист + ... пиктограмма - Как-то Так THIS     Экономическая грамотность и web-решения
Всё по теме: что, как и почему. Актуальные вещи - своими словами.
Повышайте своё качество WITH ME - СПЭМ !
Если тебе не нравится то, что ты получаешь, измени то, что ты даешь. © Карлос Кастанеда     KAKTOTAK.BY - услуги по экономическому проектированию и web-разработке (php/js - telegram, WordPress, Laravel, Vue, SEO)    Кооперация - на постоянной основе    Будь в теме   -    ПОДПИШИСЬ      Мои заметки - ЭКОНОМИКА +  и  Справочник WEB-разработчика | php+js+seo   в Telegram   telegram  

Ошибка при миграции в Laravel: очередность выполнения миграций при работе с внешними ключами и таблицами

Ошибка при миграции в Laravel: очередность выполнения миграций при работе с внешними ключами и таблицами

Порой возникают ситуации в Laravel при создании отдельных таблиц БД, когда порядок миграций влияет на успешное выполнение операций по их развёртыванию.

Например, ситуация

Вы делаете проект на Laravel, и возникла необходимость добавить в базу данных новую таблицу (unit_orders - в качестве примера), которая будет связана своим первичным ключом с таблицей (employers - в качестве примера), ранее созданной.

Перед добавлением новой таблицы (путём миграции) откатываем все существующие миграции до исходного состояния командой php artisan migrate:rollback.

Далее создаем новую миграцию для нашей новой таблицы с помощью команды php artisan make:model UnitOrder -mcr.

В итоге создается необходимый нам «букет» - контроллер, модель и миграция. Но созданная миграция оказывается внизу.

В папке migrations файлы миграций будут расположены в хронологическом порядке от дат (временных меток) их создания.

очередность выполнении миграций при работе с внешними ключами - 4

Если сейчас накатить все миграции для нашего проекта, то мы получим ошибку следующего типа:

"Уже созданная таблица не может добавить внешний ключ той таблицы, которая ещё не существует."

очередность выполнении миграций при работе с внешними ключами - 1

Таким образом, для правильного выполнения всех миграций (создания всех таблиц проекта) необходимо последнюю миграцию по созданию нашей новой таблицы unit_orders перенести перед ранее созданной таблицей employers. Это делается изменением даты её создания на произвольную дату, которая должна предшествовать дате создания существующей таблицы employers.

Перед выполнением миграций полностью очистите базу данных (это можно сделать даже вручную через графический клиент по работе с БД, если со стороны команды php artisan migrate:rollback возникают какие-либо ошибки).

очередность выполнении миграций при работе с внешними ключами -2

После этого выполняем стандартную команду php artisan migrate, и все миграции накатываются успешно.

очередность выполнении миграций при работе с внешними ключами -3

автор - Михаленко Р.
M R. Автор - kaktotak.by Специализация: финансово-экономическое проектирование - моделирование бизнеса, инвестиционных проектов реального сектора, анализ и оценка эффективности, оптимизация системы управленческих решений.

Широкий спектр web-компетенций для решения задач бизнеса.

Подписывайтесь на мой телеграмм канал - Мои заметки - ЭКОНОМИКА +
Там я ничего не втюхиваю и не навязываю. Просто делюсь полезной информацией по экономической грамотности. Повышайте своё качество вместе со мной: что, как и почему в экономике на простом языке. Понятия, алгоритмы, процессы, микро- и макроаспекты и многое другое. Может, будет интересно !

А так же - Справочник WEB-разработчика | php+js+seo
Заметки и нативные решения простых локальных задач на PHP, JS. Кое-что про Laravel, WordPress, Vue и SEO.

  Персональная помощь в экономическом проектировании и веб-разработке:

  • Финансово-экономическое моделирование, анализ, учёт, бизнес-планирование
  • Комплексная web-разработка/поддержка проекта в сети (php/js, seo – Laravel, WordPress, Vue, telegram, администрирование, контент, реклама в Яндекс Директ

  telegram или форма обратной связи

Administrator
84
0
Имя
E-mail
Рейтинг
Отзыв

Конвертер валют
RUB RUB-icon
USD USD-icon
EUR EUR-icon
CNY CNY-icon
BYN BYN-icon
UAH UAH-icon
KZT KZT-icon
SHORT - о чём речь
ЭКОНОМИЧЕСКАЯ ГРАМОТНОСТЬ
Хочу Всё Знать. Полезные Советы