Безопасно удалить миграцию в Laravel


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

создать команду миграции:

php artisan migrate:make create_users_table

Если я хочу удалить миграцию, могу ли я просто безопасно удалить соответствующий файл миграции в папке database/migrations?

миграция:
2013_05_31_220658_create_users_table
6 146

6 ответов:

я случайно создал миграцию с плохим именем (команда:php artisan migrate:make). Я не запускается (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)

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

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

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

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

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

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

'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 шаг