我有一个架构,我们称之为'遗忘'架构,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。然后事情再好几个小时,直到模式问题再次启动。
所以我希望推荐那些希望之前遇到并解决过这个问题的开发人员。谢谢!
答案 0 :(得分:0)
所以看来以下问题解决了我的问题:
ALTER DATABASE <database> SET search_path = forgotten, public;
由于此命令位于架构搜索路径的PG优先级的顶部,因此这应该是永久解决方案。我刚刚将它添加到迁移中。