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

127

В Laravel появляется команда для создания переноса, но не удаление.

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

php artisan migrate:make create_users_table

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

Файл миграции:

2013_05_31_220658_create_users_table
Теги:
database

5 ответов

237
Лучший ответ

Я случайно создал миграцию с плохим именем (команда: 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
    Благодарю. У меня получилось после удаления миграции забыть запустить дамп-автозагрузку composer
  • 5
    Если вы запустили миграцию, то «правильный» способ - запустить migrate:rollback чтобы откатить миграцию, затем удалить файл миграции и выгрузить автозагрузку. Не нужно взламывать БД или таблицу миграции.
Показать ещё 10 комментариев
59

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

  • 0
    Хотя он не управлял миграцией. Вы не можете откатить то, что на самом деле не сделали, не так ли?
  • 7
    Нет, вы не можете, но если это так, то в базе данных миграции не должно быть истории, что означает, что вы можете безопасно удалить файл.
11

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

6

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

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

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

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

  • 0
    Если вы - как и я - просто пошли дальше и переименовали файл миграции, это ответ, который вы ищете! Благодарю.
  • 2
    Вы также можете просто сделать "композитор dumpautoload"
0

попробуйте следующее:

php artisan optimize

Ещё вопросы

Сообщество Overcoder
Наверх
Меню