我正在完成对应用程序的重大重构,我正在尝试清理迁移。在重新设置数据库并重新迁移数据库后,我已经进行了更改,一切都在本地运行。
在生产中,我无法运行迁移。我已经尝试了我能想到的重置,丢弃等各种组合,但我一直收到这个错误。
生产数据库似乎没有被重置,导致迁移中断。任何提示将不胜感激。
== 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)
答案 0 :(得分: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