Случилась такая ситуация:
В моем laravel проекте есть миграции которые создают таблицы
Также есть seeds которые заполняют данными эти таблицы.
Сейчас мне нужно добавить в базу новую строку которая зависит уже от существующей (которая добавляется в seeds). Как мне это сделать?
То есть с какой проблемой я столкнулся. Если я добавлю новую миграцию в которой я буду добавлять эту строку. То если установить проект с нуля, моя последняя миграции выполниться с ошибкой, так как она зависит от данных которые будут добавляться seeds следующим шагом
Как обычно решаются такие случаи?
P.S. Откатить все изменения и создать заново все миграции и сиды нельзя т.к. есть еще другие программисты которые пишут в этом проекте. Нужно что бы они безбоязненно стянули изменения и при этом новый запуски проекта тоже могли быть
UPD: Вопрос решен
В целом я понял, что нужно создать новый сид и запустить его отдельно, и что бы при установки новые данные тоже попали в базу нужно добавить этот сид в DatabaseSeeder.php.
Непонятно. Какое отношение seed имеет к миграциям? Миграции меняют структуру таблиц, сиды заполняют таблицы информацией. Как добавление нового поля может конфликтовать с данными в другом поле?
В целом я понял, что нужно создать новый сид и запустить его отдельно, и что бы при установки новые данные тоже попали в базу нужно дабавить этот сид в DatabaseSeeder.php. Так что вопрос решен. Спасибо. (Если я не прав поправьте)
Если я добавлю новую миграцию в которой я буду добавлять эту строку. То если установить проект с нуля, моя последняя миграции выполниться с ошибкой, так как она зависит от данных которые будут добавляться seeds следующим шагом
Ошибка была допущена раньше, когда вы (ваша команда) поместили эти данные в сид. Какие-то данные надо добавлять в БД в миграциях, это абсолютно нормально. Сиды, так как они по сути одноразовые и не версионные, надо использовать очень осторожно.