PG :: DuplicateColumn:错误:关系“用户”的列“ product_id”已存在

时间:2019-06-22 13:23:47

标签: ruby-on-rails ruby-on-rails-5.2

我看到这个问题已经发布了好几次了,解决方案总是删除数据库并重新创建它。我的数据库中有数据,因此不想这样做。

模式:

Interpreter

我倒数第二个迁移文件:

create_table "users", force: :cascade do |t|
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "product_id"

  end

我没有其他迁移文件可以在当前分支上创建class AddProductIdToUsers < ActiveRecord::Migration[5.2] def change add_column :users, :product_id, :string end end 列。

我有多个具有不同数据库架构的分支。我想知道这是否引起了问题。可能已经创建了product_id的分支仅在此处供参考。它将不会合并到母版。

如何解决此问题?我尝试过:

product_id

但这没用。

1 个答案:

答案 0 :(得分:0)

您的create_table已经在数据库中创建produdct_id

create_table "users", force: :cascade do |t|
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "product_id" // <- note this line

  end

并且您正在尝试在表中添加另一个同名列,这会引发错误。