Hello,

You can probably do something like this:

import sys

from django.db import connection

with connection.cursor() as cursor:
    cursor.execute("SELECT version()")
    result = cursor.fetchone()[0]

sys.stdout.write(result + '\n')

This prints out something like "PostgreSQL 9.4.12 on x86_64-unknown-linux-gnu,
compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit".

The "SELECT version()" is a PostgreSQL-specific way of getting the server
version. The rest is Django's way of executing raw SQL queries
<https://docs.djangoproject.com/en/1.11/topics/db/sql/#executing-custom-sql-directly>.

Regards,

Antonis

Antonis Christofides
http://djangodeployment.com


On 2017-07-19 13:14, Hanne Moa wrote:
> When https://code.djangoproject.com/ticket/18332 lands (No generic way
> to get database backend version) this will be trivial but I need a
> solution for this now: How can I find out which version of postgres is
> in use?
>
> I need it thanks to JSONField. 9.6 has support for it but older
> postgresqls don't, and I'd like to then use a third-party
> json-in-TextField solution instead.
>
> A model with a django.contrib.postgres.fields.JSONField cannot be
> migrated on posgresqls older than 9.4. (We run 9.3 and I need this
> project to run on >=9.3) You get 'django.db.utils.ProgrammingError:
> type "jsonb" does not exist'. At that point it's a little late
> swapping out the import.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/06844f40-13ea-6345-eb01-fddf1421fd3f%40djangodeployment.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to