Ringo Blancke
Ringo Blancke

Reputation: 2444

Why is Rails running a migration that is prior to the schema version?

I have a migration with version number 20120926232105. My schema is at version 20121003190827.

My site is hosted on Heroku, and when I run

heroku run rake db:migrate -a my-app

I get an error that the table it is trying to create in migration 20120926232105 already exists (as it should). I don't get it - isn't the whole point of the schema_migration table to record which was the last successful migration?

Upvotes: 1

Views: 383

Answers (1)

rthbound
rthbound

Reputation: 1343

This guy explains it pretty well.

Basically, there's a table somewhere called "schema_migrations". Your migration's "version number" is actually just a time stamp. Further, there's no record of a migration with that timestamp in your 'schema_migrations' table. Since the migration exists, and its timestamp wasn't found in the 'schema_migrations' table, Rake knows to run it.

Try grep -r "table_name" db/migrate and see if it's in there twice.

Upvotes: 1

Related Questions