0

我正在完成对应用程序的重大重构,并且正在尝试清理迁移。我已经进行了更改,并且在重置和重新迁移数据库后,一切都在本地运行良好。

在生产中,我无法运行迁移。我已经尝试了所有我能想到的重置、丢弃等组合,但我一直收到这个错误。

似乎生产数据库没有被重置,这导致迁移中断。任何提示将不胜感激。

==  AddFieldsToUsers: migrating ===============================================
-- add_column(:users, :company, :string)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: company: ALTER TABLE "users" ADD "company" varchar(255)
4

1 回答 1

1

要重置数据库,您可以在生产模式下再次删除和迁移数据库。

rake db:drop db:create db:migrate RAILS_ENV=production

而且,如果你想编辑一些特定的迁移,你可以使用它的版本号来重置它。

rake db:migrate:down VERSION=<version no.> RAILS_ENV=production

编辑迁移文件,然后

rake db:migrate:up VERSION=<version no.> RAILS_ENV=production
于 2013-04-07T18:21:21.933 回答