bigbusterswife
bigbusterswife

Reputation: 157

How do I fix my database when I've deleted the current migration file?

My problem is that I at some point was doing some spiking and I migrated my database with a migration that I had created in the spike branch. Then I switched back to my master branch(I never committed the migration). Now that migration is perpetually in my database and this is making it impossible to migrate my database.

when I run

ActiveRecord::Migrator.get_all_versions

in the console my deleted migration file timestamp is in this array. I would like to remove this version from the migrator. Also I cannot drop the database.

Upvotes: 2

Views: 2033

Answers (1)

Prakash Murthy
Prakash Murthy

Reputation: 13077

If the database can be blown away, then the quickest way would be to drop the database, create it afresh, and reapply the migrations, with the following steps:

 rake db:drop
 rake db:create db:migrate

If the database has useful information & can't be blown away, then it is tricky. Only possible option would be to go to the database level, and undo the changes made by the migration.

Figure out which tables/columns were added/deleted in the migration, and then run sql scripts to reverse those changes.

In addition, delete the specific row corresponding to this migration from schema_migrations table, with the following query:

delete from schema_migrations where version = '201503......'

Upvotes: 2

Related Questions