如何从Django中找到Postgres版本



我想知道默认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

Postgres10之后,这个数字是由服务器的主要版本号乘以10000,再加上次要版本号形成的。例如,10.1版本将返回100001,11.0版本将返回110000。如果连接不正确,则返回零。

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

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

文件:

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

https://www.postgresql.org/docs/current/libpq-status.html#LIBPQ-pqserver版本

最新更新