如何从 Django 找到 Postgres 版本?

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

我想知道默认 Postgres 数据库的版本。如何使用 Django 找到它?

django postgresql django-orm psycopg2
2个回答
14
投票

获取数据库连接:

from django.db import connection

并访问内部psycopg2连接对象:

print(connection.cursor().connection.server_version)

单行:

$ python3 manage.py shell -c "from django.db import connection; print(connection.cursor().connection.server_version)"
90504

Postgres 10之后,该数字是通过将服务器的主版本号乘以10000并加上次版本号而形成的。例如,版本 10.1 将返回 100001,版本 11.0 将返回 110000。如果连接不良,则返回零。

在 Postgres 10 之前,数字是通过将主要、次要和修订号转换为两位十进制数字并将它们附加在一起而形成的。例如,版本 8.1.5 将返回为 80105。

因此,为了确定功能兼容性,应用程序应将connection.server_version的结果除以100而不是10000,以确定逻辑主版本号。在所有版本系列中,次要版本(错误修复版本)之间只有最后两位数字不同。

文档:

https://www.psycopg.org/docs/connection.html#connection.server_version

https://www.postgresql.org/docs/current/libpq-status.html#LIBPQ-PQSERVERVERSION


0
投票

有人知道后续版本是否有类似的方法:psycopg 3?

我浏览了文档,但没有什么对我来说很突出:https://www.psycopg.org/psycopg3/docs/index.html

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