gpt4 book ai didi

ruby-on-rails - 设计 rake 数据库:migrate fails because of duplicate column in my User's table - Rails 3. 1

转载 作者:行者123 更新时间:2023-12-03 00:49:47 26 4
gpt4 key购买 nike

这是我第一次安装 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
#

最佳答案

在 Devise 生成的迁移文件中,更改行

  t.string :email,              :null => false, :default => ""

对于

  t.change :email, :string,     :null => false, :default => ""

因此,迁移不是尝试创建新的电子邮件栏,而是将现有的电子邮件栏更改为 Devise 的规范。

关于ruby-on-rails - 设计 rake 数据库:migrate fails because of duplicate column in my User's table - Rails 3. 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com