gpt4 book ai didi

ruby-on-rails - 无法迁移/种子数据库 - Postgres Rails

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

很奇怪的问题

我正在尝试迁移我的数据库,但我不断收到:

PG::UndefinedTable: ERROR:  relation "users" does not exist

这是我的迁移:

class AddRoleToUser < ActiveRecord::Migration
def up
add_column :users, :role_id, :integer
end

def down
remove_column :users, :role_id
end
end

还有我的模式:

ActiveRecord::Schema.define(version: 20140205191602) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"

create_table "horseraces", force: true do |t|
t.integer "horse_id"
t.integer "race_id"
t.datetime "entered"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "horses", force: true do |t|
t.string "name"
t.string "gender"
t.date "DOB"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "races", force: true do |t|
t.string "name"
t.integer "race_number"
t.string "description"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "roles", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "users", force: true do |t|
t.string "first_name"
t.string "last_name"
t.string "user_name"
t.string "address"
t.string "phone_number"
t.string "email", default: ""
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "role_id"
end

add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree

end

我一直在努力:

rake db:reset

rake db:drop
rake db:create
rake db:migrate

我每次都会遇到同样的错误。

有趣的是,这是有效的,这意味着我已经运行了这些命令并使其正常工作。我只是想重新开始,现在它抛出了这些错误。

值得注意 - 我确实将模型文件从 users.rb 更改为 user.rb 并将 roles.rb 更改为 role.rb 我不知道这是否会产生任何影响。

如有任何帮助,我们将不胜感激。

最佳答案

您应该先加载架构,然后再迁移:

rake db:schema:load
rale db:migrate

第一个命令将运行您的 schema.rb 文件并创建用户表。第二个将运行您的迁移,它应该不会失败,因为现在用户表已经存在。

关于ruby-on-rails - 无法迁移/种子数据库 - Postgres Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21639234/

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