У меня есть миграция под названием CreateItemsTable
; Я запустил это, у меня есть элементы в этой таблице, теперь мне нужно добавить новое поле в таблицу. Я не могу просто добавить поле в файл миграции и выполнить migrate:refresh
потому что мне нужны данные, которые в нем.
Должен ли я сделать еще одну миграцию для добавления поля? Это похоже на беспорядок, в то время как я тестирую вещи в разработке, я могу сильно изменить поля. Я не уверен, что миграция чище, чем просто PhpMyAdmin … или, может быть, я их не понимаю?
Да, каждый раз, когда вам нужно каким-то образом изменить таблицу, вы создадите для нее новую миграцию. В этом весь смысл миграции. Когда вы работаете в совместной среде, и вы удаляете некоторые изменения из удаленного репозитория, одна из вещей, которую вы должны делать (при работе с базой данных), – это запускать любые миграции, которые могли бы создать другие разработчики. Это позволяет синхронизировать ваши базы данных.
Конечно, вы можете иногда добавлять и добавлять столбцы, но это не имеет большого значения.
Когда вы создаете таблицу в первый раз, вы, вероятно, используете Schema::create()
. Все последующие миграции для этой таблицы должны использовать Scheme::table()
. Он принимает те же параметры, за исключением того, что сначала не пытается создать таблицу.