为什么更新到 psycopg 3.x 会导致数据库超时?

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

我有一个 Django 5.x 应用程序。我一直在使用 psycopg2,现在正在尝试更新到 psycopg 3。这非常简单:我卸载了与 psycopg2 相关的所有内容并安装了

psycopg[binary]

但是,当我现在(并行)运行我的测试套件时,我突然遇到了以前没有遇到过的

connection timeout expired
错误!

我的数据库配置非常简单:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": get_from_env("DB_NAME", "my-db"),
        "USER": get_from_env("DB_USERNAME", "my-db-user"),
        "PASSWORD": get_from_env("DB_PASSWORD", DEFAULT_DB_PASSWORD),
        "HOST": get_from_env("DB_HOSTNAME", "localhost"),
        "PORT": get_from_env("DB_PORT", "5432"),
        "OPTIONS": {
            "connect_timeout": 3,
            "options": f"-c statement_timeout=30000ms",
        }
    },
}

问题在于

connect_timeout
:如果我删除它,那么事情似乎就可以了。

psycopg 3 是否改变了连接的工作方式?为什么更新到 3.x 会导致更多连接超时?

django postgresql psycopg3
1个回答
0
投票

这似乎是由于 psycopg 3.2 中的错误造成的。通过使用 psycopg 3.1,一切都会按预期进行。这里有一个关于该错误的 GitHub 问题:https://github.com/psycopg/psycopg/issues/888

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