Безопасное удаление миграции в 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) миграция, поэтому я решил удалить ее. Мои шаги:

  1. вручную удалите файл миграции в разделе app/database/migrations/my_migration_file_name.php
  2. сброс файлов автозапуска композитора:composer dump-autoload
  3. отдыхать

если вы выполнили миграцию (php artisan migrate), вы может сделать это:

a) выполнить migrate:rollback - это правильный способ отменить последнюю миграцию (Thnx @Jakobud)

b) если migrate:rollback не работает, сделайте это вручную (я помню ошибки с migrate:rollback в предыдущих версиях):

  1. вручную удалите файл миграции в разделе app/database/migrations/my_migration_file_name.php
  2. сброс файлов автозапуска композитора:composer dump-autoload
  3. изменить базу данных: удалить последнюю запись от миграция стол

Если миграция была запущена (read: migrated), вы должны откатить миграцию, чтобы очистить историю из таблицы базы данных. После отката вы сможете безопасно удалить файл миграции, а затем продолжить миграцию снова.


вероятно, вам также нужно удалить запись из таблицы миграции.


я случайно создал два раза create_users_table. Он переопределил некоторые классы и превратил откат в ErrorException.

что вам нужно сделать, это найти autoload_classmap.php в папке поставщика / композитора и найдите конкретную строку кода, такую как

'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',

и изменить путь. Тогда ваш откат должен быть в порядке.


 php artisan migrate:fresh

должен сделать работу!


Я согласен с текущими ответами, я просто хочу добавить немного больше информации.

новая функция была добавлена к фреймворк Laravel 5.3 и выше версии это позволит вам отказаться от одной миграции:

php artisan migrate:rollback --step=1

после этого вручную удалите файл миграции в разделе database/migrations/my_migration_file_name.php

это отличная функция для запуска миграции

таким образом, вы можете безопасно удалить миграцию в laravel только в 2 шаг