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