Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing duplicate db migrations from git repository

I'm trying to deploy a rails app to Heroku and I'm running into some basic git problems. I'm new to this all -- rails, git, heroku -- so I'm afraid I'm getting lost on what's probably a fairly basic concept.

I've pushed the app to Heroku, but when I'm migrating the db ($ heroku rake db:migrate), I keep getting the following error:

rake aborted!
Multiple migrations have the name CreateFavorites

Checking my github repository, and sure enough, there are two migrations:

20101007030431_create_favorites.rb
20101012173735_create_favorites.rb

The first file -- 20101007030431_create_favorites.rb -- does not exist in my local app, and yet it's still in the github repository after I commit. How can I remove this file and get my repository and local app in sync?

Thanks in advance.

like image 604
iamlemur Avatar asked Oct 25 '10 18:10

iamlemur


People also ask

Can I delete migrations rails?

After working on a Rails project for months, it's not unusual to have hundreds of migration files in the db/migrate folder. Turns out, you can safely delete the ones that already ran in production, keeping your codebase small.


1 Answers

If you type "git status" it should show the inconsistency. It will say something like this:

# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    db/migrate/20101007030431_create_favorites.rb

So just follow the instructions there. To permanently remove it from the repository, type:

git rm db/migrate/20101007030431_create_favorites.rb
like image 123
Ben Lee Avatar answered Oct 10 '22 17:10

Ben Lee