|
@@ -1,11 +1,31 @@
|
|
# -*- coding: utf-8 -*-
|
|
# -*- coding: utf-8 -*-
|
|
# Generated by Django 1.11.4 on 2017-09-26 21:25
|
|
# Generated by Django 1.11.4 on 2017-09-26 21:25
|
|
from __future__ import unicode_literals
|
|
from __future__ import unicode_literals
|
|
|
|
+from distutils.version import StrictVersion
|
|
|
|
|
|
from django.conf import settings
|
|
from django.conf import settings
|
|
import django.contrib.postgres.fields.jsonb
|
|
import django.contrib.postgres.fields.jsonb
|
|
-from django.db import migrations, models
|
|
|
|
|
|
+from django.db import connection, migrations, models
|
|
import django.db.models.deletion
|
|
import django.db.models.deletion
|
|
|
|
+from django.db.utils import OperationalError
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def verify_postgresql_version(apps, schema_editor):
|
|
|
|
+ """
|
|
|
|
+ Verify that PostgreSQL is version 9.4 or higher.
|
|
|
|
+ """
|
|
|
|
+ try:
|
|
|
|
+ with connection.cursor() as cursor:
|
|
|
|
+ cursor.execute("SELECT VERSION()")
|
|
|
|
+ row = cursor.fetchone()
|
|
|
|
+ pg_version = row[0].split()[1]
|
|
|
|
+ if StrictVersion(pg_version) < StrictVersion('9.4.0'):
|
|
|
|
+ raise Exception("PostgreSQL 9.4.0 or higher is required ({} found). Upgrade PostgreSQL and then run migrations again.".format(pg_version))
|
|
|
|
+
|
|
|
|
+ # Skip if the database is missing (e.g. for CI testing) or misconfigured.
|
|
|
|
+ except OperationalError:
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
class Migration(migrations.Migration):
|
|
@@ -16,6 +36,7 @@ class Migration(migrations.Migration):
|
|
]
|
|
]
|
|
|
|
|
|
operations = [
|
|
operations = [
|
|
|
|
+ migrations.RunPython(verify_postgresql_version),
|
|
migrations.CreateModel(
|
|
migrations.CreateModel(
|
|
name='ReportResult',
|
|
name='ReportResult',
|
|
fields=[
|
|
fields=[
|