ruby-on-rails – 由于我的用户表中的重复列–Rails 3.1,Devise
发布时间:2020-12-17 04:35:39 所属栏目:百科 来源:网络整理
导读:这是我第一次安装Devise并运行rake db:migrate时遇到的错误: == AddDeviseToUsers: migrating ===============================================-- change_table(:users)rake aborted!An error has occurred,this and all later migrations canceled:SQLit
这是我第一次安装Devise并运行rake db:migrate时遇到的错误:
== 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 鉴于这只是测试数据,我可以删除我的数据库中的那个列并重新运行它,但这似乎不是Railsy – 如果只是因为它将使我的登台服务器(唯一的其他服务器与我的应用程序与我的localhost不同步. 此外,如果与另一列发生冲突,该怎么办? 因此,在运行迁移之前,这是我的User表的架构,我该如何处理?迁移某种重命名的迁移? # == Schema Information # # Table name: users # # id :integer not null,primary key # email :string(255) # f_name :string(255) # l_name :string(255) # username :string(255) # role_id :integer # picture :string(255) # about_me :string(255) # website :string(255) # created_at :datetime # updated_at :datetime # 解决方法
尝试rake db:rollback然后再试一次.当你第一次添加id列时这样做.为什么要添加id:integer not null,主键是自动在rails中.它应该如下所示:
class CreateProducts < ActiveRecord::Migration def up create_table :products do |t| t.string :email t.text :f_name t.timestamps end end def down drop_table :products end end 您可以在这里获得更多信息http://guides.rubyonrails.org/migrations.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |