Безопасное удаление миграции в Laravel
В Laravel появляется команда для создания переноса, но не удаление.
Создать команду миграции:
php artisan migrate:make create_users_table
Если я хочу удалить перенос, могу ли я просто безопасно удалить соответствующий файл миграции в папке базы данных/миграции?
Файл миграции:
2013_05_31_220658_create_users_table
Ответы
Ответ 1
Я случайно создал миграцию с плохим именем (команда: php artisan migrate: make). Я не выполнял миграцию (php artisan migrate), поэтому решил удалить ее.
Мои шаги:
- Вручную удалить файл миграции в приложении /database/migrations/my _migration_file_name.php
- Reset файлы автозагрузки композитора: композитор dump-autoload
- Relax
Если вы выполнили миграцию (миграция php-artisan), вы можете сделать это:
a) Выполнить migrate:rollback
- это правильный способ отменить последнюю миграцию (Thnx @Jakobud)
b) Если migrate:rollback
не работает, сделайте это вручную (я помню ошибки с миграцией: откат в предыдущих версиях):
- Вручную удалить файл миграции в приложении /database/migrations/my _migration_file_name.php
- Reset файлы автозагрузки композитора: композитор dump-autoload
- Измените свою базу данных: удалите последнюю запись из таблицы миграции
Ответ 2
Если миграция выполнена (read: migrated), вам следует отменить миграцию, чтобы очистить историю из таблицы базы данных. После того, как вы откат, вы сможете безопасно удалить файл миграции, а затем продолжить миграцию.
Ответ 3
Вероятно, вам нужно также удалить запись из таблицы миграции.
Ответ 4
Я случайно создал два раза create_users_table. Он переопределил некоторые классы и повернул откат в ErrorException.
Что вам нужно сделать, это найти autoload_classmap.php в папке поставщика/композитора и найти конкретную строку кода, например
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
и изменить путь. Тогда ваш откат должен быть хорошим.
Ответ 5
попробуйте следующее:
php artisan optimize