我想知道默认 Postgres 数据库的版本。如何使用 Django 找到它?
获取数据库连接:
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
有人知道后续版本是否有类似的方法:psycopg 3?
我浏览了文档,但没有什么对我来说很突出:https://www.psycopg.org/psycopg3/docs/index.html