加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读