Как организовать миграцию в laravel на production?
Как организовать первую миграцию - понятно.
Вопрос в том, что если в БД меняются поля - добавляются, удаляются, меняется тип и т. д.
Как в таких случаях делать миграцию?
Нужно использовать какие-то доп. инструменты или нет?
P. S. Я не прошу открыть глубокие технические детали, мне будет достаточно плана, куда копать и двигаться дальше.
каждое изменение бд - в новой миграции, старые нельзя менять. тогда на проде просто php artisan migrate - выполнятся только новые миграции (laravel ведет учет миграций в таблице migrations в бд)
у вас на проде были, например, три миграции. вы хотите добавить стобец в таблицу - делаете четвертую миграцию - там добавление столбца. далее обновляете код на проде и делаете на проде php artisan migrate. на проде добавится столбец
Антон Антон, а если будет два изменения типа поля, он будет применять миграции по дате в таблице в БД?
А если, допустим, захотим раскатать на другом сервере, тогда придется заново создавать БД и т. д.
И будет несколько миграций на изменение одного и того же столбца, как гарантировать порядок применения?
lexstile, в порядке сортировки имен файлов. именно по этому при создании миграции командой php artisan make:migration <migration_name> в начале имени файла идет дата и время в формате, который при сортировке отсортируется нормально.
Ещё не стоит менять существующие миграции, если уже сделали php artisan migrate локально. Так как на локальной машине и на продакшне база будет отличаться.
Арамаис Мирзоян, на локальной можно миграции откатить. кстати один из тестов перед коммитом - накатить а потом откатить миграции (потом снова накатить, да).
Сергей delphinpro, скажите, пожалуйста, есть миграция на таблицу users. Я меняю тип данных одного поля или в эту таблицу добавляется новое поле - он поймет, что нужно сделать? (В этот момент уже существует таблица users)