Безопасно удалить миграцию в Laravel
в Laravel, кажется, есть команда для создания миграции, но не удаления.
создать команду миграции:
php artisan migrate:make create_users_table
Если я хочу удалить миграцию, могу ли я просто безопасно удалить соответствующий файл миграции в папке database/migrations?
миграция:2013_05_31_220658_create_users_table
6 ответов:
я случайно создал миграцию с плохим именем (команда:
php artisan migrate:make
). Я не запускается (php artisan migrate
) миграции, поэтому я решил удалить его. Мои шаги:
- вручную удалите файл миграции в разделе
app/database/migrations/my_migration_file_name.php
- сброс файлов автоматической загрузки композитора:
composer dump-autoload
- отдыхать
если вы запустили миграцию (
php artisan migrate
), вы может сделать это:a) выполнить
migrate:rollback
- это правильный способ отменить последнюю миграцию (Thnx @Jakobud)б) если
migrate:rollback
не работает, сделайте это вручную (я помню ошибки с migrate:rollback в предыдущих версиях):
- вручную удалите файл миграции в разделе
app/database/migrations/my_migration_file_name.php
- сброс файлов автоматической загрузки композитора:
composer dump-autoload
- изменить базу данных: удалить последнюю запись из миграция стол
Если миграция была выполнена (читай: перенесена), то вы должны откатить миграцию, чтобы очистить историю из таблицы базы данных. После отката вы должны иметь возможность безопасно удалить файл миграции, а затем продолжить миграцию снова.
я случайно создал два раза create_users_table. Он переопределил некоторые классы и превратил откат в ErrorException.
что вам нужно сделать, это найти autoload_classmap.php в папке vendor / composer и найдите конкретную строку кода, такую как
'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 шаг