Search code examples
phpdatabaselaravelartisan-migrate

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

Solution

  • 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:

    1. Manually delete the migration file under app/database/migrations/my_migration_file_name.php
    2. Reset the composer autoload files: composer dump-autoload
    3. 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):

    1. Manually delete the migration file under app/database/migrations/my_migration_file_name.php
    2. Reset the composer autoload files: composer dump-autoload
    3. Modify your database: Remove the last entry from the migrations table