1

我有一个版本号为 20120926232105 的迁移。我的架构版本为 20121003190827。

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

heroku run rake db:migrate -a my-app

我收到一个错误,它试图在迁移 20120926232105 中创建的表已经存在(应该如此)。我不明白——schema_migration 表的重点不就是要记录最后一次成功的迁移吗?

4

1 回答 1

1

这个人解释得很好。

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

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

于 2012-10-11T20:42:59.823 回答