Postgres 连接 URL 选项从 PG11 切换到 PG14 时停止工作

问题描述 投票:0回答:1

我有一个代码库,它依赖于通过完整的独立连接 URL 连接到 Postgres。 Python 代码库在 PG11 上运行,但切换到 PG14 后,连接 URL 中的选项不再被识别:

postgresql://username:password@host:port/database?&options=-csearch_path=my_schema&target_session_attrs=read-write&connect_timeout=5

具体来说这部分:?&options=-csearch_path=my_schema&target_session_attrs=read-write&connect_timeout=5

无法识别

search_path
,因此默认情况下未设置架构
my_schema

我尝试了很多可能性,包括但似乎都不起作用:

  1. 向空间添加编码,如
    ?&options=-c%20search_path=my_schema
  2. 删除选项之前的前导和前面
  3. 删除search_path之前的-c
  4. 指定不带选项的search_path
python postgresql psycopg2 postgres-14 postgres-11
1个回答
0
投票

你一定是搞错了。该 URI 在语法上不正确,并且不适用于任何版本的 PostgreSQL。问题是

  • ?&
    就在数据库名称之后,而它应该只是
    ?

  • =
    在第一个参数值中,当您必须将其 URI 转义为
    %3D

此外,

port
不是有效的端口号。我假设您在发布之前修改了实际的 URI,这是一个坏主意,因为它很可能隐藏了您的一些实际错误。

© www.soinside.com 2019 - 2024. All rights reserved.