如何在django db连接中打开PostgreSQL VERBOSITY?

时间:2017-02-02 07:13:37

标签: django postgresql

这是对此的后续问题:

Postgres: More verbose error message: I am missing the table name

PostgreSQL 9.6改进了版本9.6的错误消息。

使用psql,您可以启用\set VERBOSITY verbose

如何为django ORM中的每个连接启用此功能?

背景:我想要更好的错误消息。

示例:我在这样的消息中缺少表名

IntegrityError: null value in column "date" violates not-null constraint
DETAIL:  Failing row contains (10005, null, f, TEST, MAIL).

我认为9.6 release notes的相关部分是:

  

在libpq中添加支持以重新生成具有不同详细级别的错误消息(Alex Shulgin)

     

使用新函数PQresultVerboseErrorMessage()完成此操作。这支持psql的新\ errverbose功能,也可能对其他客户端有用。

我使用psycopg2作为数据库适配器。

1 个答案:

答案 0 :(得分:2)

试试这个

SELECT *
FROM Test 
WHERE Id IN (SELECT TOP 10 Id FROM Test ORDER BY NewId())

测试查询

# settings.py
DATABASES = {
    'default': {
        'ENGINE': '...',
        'OPTIONS': {
            'init_command': "SET log_error_verbosity TO 'verbose'",
        },
    }
}