设置Devise时迁移期间出错

时间:2012-06-09 03:30:17

标签: ruby-on-rails devise migration

我对Rails相对较新,我在尝试设置Devise时遇到了问题。我认为这个问题源于我在尝试安装Devise之前已经生成了一个用户脚手架,但我不知道如何解决这个问题。当我继续进行设计设置时,我将进入必须输入以下代码的步骤:

rails generate devise User

这很有效,我从终端回来了:

invoke  active_record
  create    db/migrate/20120609032448_add_devise_to_users.rb
  insert    app/models/user.rb
   route  devise_for :users

下一步是迁移数据库,我尝试但是会收到以下错误:

==  AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email"         varchar(255) DEFAULT '' NOT NULL

Tasks: TOP => db:migrate

我已尝试销毁原始用户脚手架以及原始用户迁移但我一直遇到此错误。非常感谢帮助!

2 个答案:

答案 0 :(得分:3)

您的新迁移可能会在其中定义email列。评论有关添加email列并再次运行的行。您的模型中可能已经有了一个电子邮件列。

答案 1 :(得分:0)

尝试转到此文件

db/migrate/20120609032448_add_devise_to_users.rb 

并在代码中显示

change_table(:users)...

将此更改为

create_table(:users)...