为什么Rails运行模式版本之前的迁移?

时间:2012-10-11 19:07:29

标签: ruby-on-rails database heroku

我的迁移版本号为20120926232105.我的架构版本为20121003190827.

我的网站托管在Heroku上,当我运行时

heroku run rake db:migrate -a my-app

我收到一个错误,它正在尝试在迁移20120926232105中创建的表已存在(应该如此)。我不明白 - 不是schema_migration表的全部内容来记录哪个是最后一次成功的迁移?

1 个答案:

答案 0 :(得分:1)

This guy解释得非常好。

基本上,有一个名为“schema_migrations”的表。您的迁移的“版本号”实际上只是一个时间戳。此外,在'schema_migrations'表中没有带有该时间戳的迁移记录。由于迁移存在,并且在'schema_migrations'表中找不到时间戳,Rake知道要运行它。

尝试grep -r "table_name" db/migrate并查看它是否在那里两次。