我看到这个问题已经发布了好几次了,解决方案总是删除数据库并重新创建它。我的数据库中有数据,因此不想这样做。
模式:
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
但这没用。
答案 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
并且您正在尝试在表中添加另一个同名列,这会引发错误。