gpt4 book ai didi

ruby-on-rails - 为什么会出现此重复列错误?

转载 作者:数据小太阳 更新时间:2023-10-29 08:42:21 27 4
gpt4 key购买 nike

我正在尝试向我的表 students 添加一个新列 active

我运行 rails g migration add_active_to_students active:boolean 来生成这个迁移:

class AddActiveToStudents < ActiveRecord::Migration[5.0]
def change
add_column :students, :active, :boolean, default: true
end
end

但是当我运行 rails db:migrate 时,我得到了这个错误:

PG::DuplicateColumn: ERROR: column "active" of relation "students" already exists : ALTER TABLE "students" ADD "active" boolean DEFAULT 't'`

如您所见,students 中实际上没有 active 列:

create_table "students", force: :cascade do |t|
t.integer "club_id"
t.string "email"
t.string "address_line_1"
t.string "address_line_2"
t.string "city"
t.string "state"
t.integer "postcode"
t.string "phone1"
t.string "phone2"
t.string "first_name"
t.string "last_name"
t.date "dob"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "picture"
t.integer "payment_plan_id"
t.string "parent1"
t.string "parent2"
t.string "size"
t.text "notes"
t.index ["club_id"], name: "index_students_on_club_id", using: :btree
end

那么为什么我会收到此错误?

最佳答案

我按照@demir 发布的步骤进行操作,发现是的,该列在数据库中,但未在模式中列出。 ALTER TABLE students DROP COLUMN active 没有给出错误消息,但是它也没有删除该列。

最后我通过以下方式删除了它:

  1. 进入控制台

rails 控制台

  1. 删除列

ActiveRecord::Base.connection.remove_column :students, :active

关于ruby-on-rails - 为什么会出现此重复列错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878505/

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