Безопасное удаление миграции в Laravel
в Laravel появляется команда для создания миграции, но не для удаления.
создать команду миграции:
php artisan migrate:make create_users_table
Если я хочу удалить миграцию, могу ли я просто безопасно удалить соответствующий файл миграции в папке базы данных / миграции?
миграция:2013_05_31_220658_create_users_table
6 ответов
я случайно создал миграцию с плохим именем (команда:php artisan migrate:make
). Я!--12-->не запускается (php artisan migrate
) миграция, поэтому я решил удалить ее.
Мои шаги:
- вручную удалите файл миграции в разделе
app/database/migrations/my_migration_file_name.php
- сброс файлов автозапуска композитора:
composer dump-autoload
- отдыхать
если вы выполнили миграцию (php artisan migrate
), вы может сделать это:
a) выполнить migrate:rollback
- это правильный способ отменить последнюю миграцию (Thnx @Jakobud)
b) если migrate:rollback
не работает, сделайте это вручную (я помню ошибки с migrate:rollback в предыдущих версиях):
- вручную удалите файл миграции в разделе
app/database/migrations/my_migration_file_name.php
- сброс файлов автозапуска композитора:
composer dump-autoload
- изменить базу данных: удалить последнюю запись от миграция стол
Если миграция была запущена (read: migrated), вы должны откатить миграцию, чтобы очистить историю из таблицы базы данных. После отката вы сможете безопасно удалить файл миграции, а затем продолжить миграцию снова.
я случайно создал два раза create_users_table. Он переопределил некоторые классы и превратил откат в ErrorException.
что вам нужно сделать, это найти autoload_classmap.php в папке поставщика / композитора и найдите конкретную строку кода, такую как
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
и изменить путь. Тогда ваш откат должен быть в порядке.
Я согласен с текущими ответами, я просто хочу добавить немного больше информации.
новая функция была добавлена к фреймворк Laravel 5.3 и выше версии это позволит вам отказаться от одной миграции:
php artisan migrate:rollback --step=1
после этого вручную удалите файл миграции в разделе database/migrations/my_migration_file_name.php
это отличная функция для запуска миграции
таким образом, вы можете безопасно удалить миграцию в laravel только в 2 шаг