我的迁移版本号为20120926232105.我的架构版本为20121003190827.
我的网站托管在Heroku上,当我运行时
heroku run rake db:migrate -a my-app
我收到一个错误,它正在尝试在迁移20120926232105中创建的表已存在(应该如此)。我不明白 - 不是schema_migration表的全部内容来记录哪个是最后一次成功的迁移?
答案 0 :(得分:1)
This guy解释得非常好。
基本上,有一个名为“schema_migrations”的表。您的迁移的“版本号”实际上只是一个时间戳。此外,在'schema_migrations'表中没有带有该时间戳的迁移记录。由于迁移存在,并且在'schema_migrations'表中找不到时间戳,Rake知道要运行它。
尝试grep -r "table_name" db/migrate
并查看它是否在那里两次。