Есть ли способ избежать ошибок при выполнении миграций при работе с Laravel?

Ниже приведена ошибка, с которой я столкнулся.

[ОшибкаИсключение] include(/home/in-techhouse/Projects/qidigo/qidigo/vendor/composer/../../database/migrations/2020_12_16_135219_add_last_played_at_to_presentations.php): не удалось открыть поток:

Сценарий объяснил:

  1. Я создал миграцию с именем «020_12_16_135219_add_last_played_at_to_presentations.php», а также выполнил ее в своей локальной среде, а затем переключился на другую ветку.
  2. Здесь файл миграции недоступен, но в таблице миграций есть запись о выполненной миграции.

Скажите, пожалуйста, какие стандарты Laravel преодолевают эту ситуацию.

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
0
0
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Теоретически ваши миграции должны работать нормально, если вы продолжаете создавать новые файлы и следите за тем, чтобы они запускались в порядке создания. Затем, если кто-то загрузит репо, отсутствующие миграции также должны выполняться в правильном порядке, и все должно быть в порядке.

Но я не могу точно сказать из вашего вопроса, переименовываются ли файлы. Если это так, то вам не повезло, так как вы больше не можете доверять содержимому таблицы migrations (которую Laravel создает для вас), так как в нем говорится, что миграция с именем файла "x" была выполнена, но с тех пор она была переименована. Таким образом, в следующий раз, когда вы php artisan migrate переименуете миграцию, она будет запущена, поскольку ее нет в таблице migrations.

Однако я сталкиваюсь с этими проблемами в основном на этапах запуска проекта. Если у вас много рефакторинга базы данных, я предлагаю вам сделать это сразу.

Вы всегда можете локально выполнить php artisan migrate:refresh, чтобы сбросить базу данных до новой структуры (хотя все данные будут удалены), но эта команда, вероятно, также столкнется с ошибками, если попытается откатить переименованные файлы, которые больше не может найти.

Другие вопросы по теме

Выберите полную строку с последним полем даты и времени после некоторых «левых соединений»
Код ошибки: 1062. Повторяющаяся запись для ключа Уникальное поле данных с использованием ОБНОВЛЕНИЯ. MySQL
Получение данных из 2 таблиц с отношением «один ко многим» с использованием лимита и смещения в «главной» таблице
SQL Выберите одни и те же столбцы из двух разных таблиц
Каков наилучший способ запросить эту таблицу «Отдел-Сотрудник», чтобы получить отдел, в котором есть точные сотрудники?
Скрыть кнопку удаления из таблицы через 3 дня
Объедините повторяющиеся строки с одинаковыми значениями в двух столбцах моей таблицы mysql и добавьте значения в третий столбец.
Проверка пользовательского ввода с использованием регулярного выражения для предотвращения инъекции sql
Как просмотреть структуру индекса B-дерева, сгенерированную InnoDB MySQL?
Извлечение значений из предыдущих строк, только если они отличаются от текущей строки [MySQL]