簡體   English   中英

Rails ActiveRecord似乎忘記了我的PG模式

[英]Rails ActiveRecord Seems to Forget My PG Schema

我有一個架構,讓我們稱之為“被遺忘”的架構,並且Rails似乎可以識別並使用它大約幾個小時,但是由於我不知道的原因,我開始遇到以下錯誤:

ActiveRecord::StatementInvalid (PG::Error: ERROR:  schema "forgotten" does not exist
LINE 1: SELECT COUNT(*) FROM "forgotten"."stuff"

ActionView::Template::Error (PG::Error: ERROR:  schema "forgotten" does not exist
LINE 1: ...COUNT(DISTINCT "forgotten"."other_stuff"."id") FROM "forgotten"."oth...

幾乎像rails一樣忘記了我的架構的存在。

我的database.yml:

production:
  adapter: postgresql
  encoding: UTF8
  username: xxxxxx
  host: xxxxx
  database: xxxxx
  password: xxxxx

我希望這和添加一樣容易:

schema_search_path: 'forgotten, public'

但我得到相同的結果。

一旦開始,我的應用程序的其他部分就可以毫無問題地使用公共表,只是沒有使用非公共模式的任何人。 再次使該工作正常的唯一方法是重新啟動Nginx / passenger。 然后,事情又可以正常工作幾個小時,直到架構問題再次開始。

因此,我謹請希望曾經遇到並解決此問題的開發人員。 謝謝!

因此,看來以下解決了我的問題:

ALTER DATABASE <database> SET search_path = forgotten, public;

由於此命令位於模式搜索路徑的PG優先級的頂部,因此這應該是永久解決方案。 我只是將其添加到遷移中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM