2013-08-30 116 views
0

试图名称字段中轨获取耙分贝:迁移错误

增加了$轨产生迁移AddNameToUsers名称添加到我的simple_form:字符串,它已被添加到文件的user.db到&

我的迁移文件

class AddNameToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :name, :string 
    end 
end 

但是当我运行耙db:migrate我得到以下错误(也跑束EXEC ...)

rake中止!发生了错误,这和所有后来迁移取消:

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email" varchar(255) DEFAULT '' NOT NULL/usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `new' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `prepare' /usr/local/rvm/gems/ruby-1.9.3-p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:134:in `execute' 

什么想法?

+0

错误是正确的在第一行它说'重复的列名称:电子邮件:ALTER TABLE“用户”添加“电子邮件”'所以在你的迁移某处你已经有一个名为电子邮件列。这需要先解决,然后才能运行db:migrate。每次运行'db:migrate'命令时,它都会迁移整个数据库,并发现您有一个名为email的现有字段。你能检查你是否有这个。如果你有这个,你需要删除它。因为另一个迁移尝试添加列名“email” – David

+0

感谢连接 - 说实话@david不太确定在哪里寻找。我在我的迁移文件devise_create_users.rb&add_devise_to_users.rb&add_name_to_name_to_users.rb中有3个文件。我的user.db文件有这个 - > attr_accessible:电子邮件,:密码,:password_confirmation,:remember_me,:名称不知道我将如何删除电子邮件字段。 Iam试图添加一个名称字段到我的注册表单,它与电子邮件和密码字段一起工作,因为我添加了一个名称字段不起作用? – Neil

+0

请发布您的devise_create_users.rb和add_devise_to_users.rb迁移文件。 –

回答

0

我有同样的经历。注意到db/migrate文件夹中有一个新的设计.rb。我删除它,然后刷新,它的工作。