Safely remove migration In Laravel
In Laravel, there appears to be a command for creating a migration, but not removing.
Create migration command:
php artisan migrate:make create_users_table
If I want to delete the migration, can I just safely delete the corresponding migrations file within the database/migrations folder?
Migrations file:
2013_05_31_220658_create_users_table
I accidentally created a migration with a bad name (command: php artisan migrate:make
). I did not run (php artisan migrate
) the migration, so I decided to remove it.
My steps:
- Manually delete the migration file under
app/database/migrations/my_migration_file_name.php
- Reset the composer autoload files:
composer dump-autoload
- Relax
If you did run the migration (php artisan migrate
), you may do this:
a) Run migrate:rollback
- it is the right way to undo the last migration (Thnx @Jakobud)
b) If migrate:rollback
does not work, do it manually (I remember bugs with migrate:rollback in previous versions):
- Manually delete the migration file under
app/database/migrations/my_migration_file_name.php
- Reset the composer autoload files:
composer dump-autoload
- Modify your database: Remove the last entry from the migrations table
If the migration has been run (read: migrated) then you should roll back your migration to clear the history from your database table. Once you're rolled back you should be able to safely delete your migration file and then proceed with migrating again.