我的数据库设置使search_path
仅是my_path
,因此SHOW search_path
仅显示my_path
我有一个视图,该视图存在于同一数据库的public
模式中。叫my_view
,所以我在查询中所做的是
SELECT * FROM my_path.some_table a
JOIN public.my_view b
ON ......
和django总是抱怨relation "public.my_view" does not exist
当我手动执行此操作时(直接在postgres上,将搜索路径设置为仅查看my_path,然后运行相同的命令),此查询有效,但经过Django(也在Django shell中进行了测试,结果相同),以某种方式使其结果不同。
我的问题是为什么。它与设置有关吗?为什么相同的设置(或我相信的设置)可以在手动模式下工作但不能在Django上工作?
此外,如果我运行查询以从表而不是视图中获取数据,则它可以工作。似乎是特定于视图的问题?
编辑:
使用
SELECT * FROM pg_catalog.pg_views where schemaname='public';
不返回任何内容。出于某种原因,django根本看不到该视图
编辑2:
在python上通过psycopg2
进行操作也可以。可以找到my_view
。我认为这是Django问题。但是在1.8版之后,我们应该可以看到所有视图,对吧?