我有一个C#app连接到postgres数据库,通过pg_bouncer,使用Npgsql。在我的连接字符串中,我包含SearchPath
。 Npgsql选择此项并在启动数据包中设置search_path
参数。
Pg_bouncer似乎不喜欢search_path
参数,这会导致初始连接失败(Unsupported startup parameter: search_path
)。为了解决这个问题,我们将它列在pg_bouncer的ignore_startup_parameters列表中。
现在连接很好地连接到数据库,但完全忽略连接字符串中声明的任何SearchPath。现在,每个查询都不是命中正确的模式,而是从Public模式中选择。
如何让Postgres再次尊重SearchPath?
答案 0 :(得分:0)
您可以为要连接的角色设置默认search_path
(永久):
ALTER ROLE foo SET search_path=blarg,public;
或者对于整个数据库,具体取决于您的具体要求。您甚至可以在会话/事务的顶部发出一个简单的SET
语句。有多种方法可以在Postgres中设置search_path
。详细说明: