錯誤信息存在:PG::UndefinedTable: ERROR: relation "resolvers" does not exist
第一DB遷移:未定義的表/關係不對外鍵
下面是被吐出錯誤的遷移:
class AddResolverRefToBugs < ActiveRecord::Migration[5.0]
def change
add_reference :bugs, :resolver, foreign_key: true
end
end
現在,我得到的沒有Resolver表,因爲實際表是User表; resolver_id是我的foreign_key列。因此,我只有一個resolver_id
字段,用於引用用戶模型的模型之一,並且在開發環境中我的應用程序沒有任何問題。
class Bug < ApplicationRecord
# Associations
belongs_to :user
belongs_to :resolver, class_name: 'User', optional: true
我是否應該指定一些東西,讓PG知道:resolver(resolver_id列)其實就是Users表?
我的錯誤信息中包含行:: ALTER TABLE "bugs" ADD CONSTRAINT "fk_rails_2d3f1765bb" FOREIGN KEY ("resolver_id") REFERENCES "resolvers" ("id")
所以它看起來像它的引用錯誤的事情。
在一個相關StackOverflow question,我注意到他/她有 「嵌套」 引用...
create_table :english_grades do |t|
t.references :teacher, references: :users
t.references :student, references: :users
...其中指定用戶。我不確定這是否與此有關。
想必我的模式我的移民可能看起來像:
t.references :resolver, references: users
的docs for add_references不提這事。
該人員還具有在遷移中指定的外鍵,其中我確實看到從外鍵字段到實際表格的鏈接。大概我需要這樣的:
add_foreign_key :bugs, :users, column: :resolver_id
但基於我在線閱讀,這是沒有必要使用add_foreign_key
。
我會很感激這裏的任何解釋。
注意:有些人建議首先運行db:reset,但這對我不起作用,因爲我得到error this person is getting。