diff --git a/netbox/extras/migrations/0008_reports.py b/netbox/extras/migrations/0008_reports.py index c9fc16cc3..83565cce7 100644 --- a/netbox/extras/migrations/0008_reports.py +++ b/netbox/extras/migrations/0008_reports.py @@ -1,11 +1,30 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.4 on 2017-09-26 21:25 from __future__ import unicode_literals +from distutils.version import StrictVersion from django.conf import settings import django.contrib.postgres.fields.jsonb -from django.db import migrations, models +from django.db import connection, migrations, models 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): @@ -16,6 +35,7 @@ class Migration(migrations.Migration): ] operations = [ + migrations.RunPython(verify_postgresql_version), migrations.CreateModel( name='ReportResult', fields=[ diff --git a/netbox/netbox/__init__.py b/netbox/netbox/__init__.py index 361659e58..e69de29bb 100644 --- a/netbox/netbox/__init__.py +++ b/netbox/netbox/__init__.py @@ -1,18 +0,0 @@ -from distutils.version import StrictVersion - -from django.db import connection -from django.db.utils import OperationalError - - -# NetBox v2.2 and later requires PostgreSQL 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)".format(pg_version)) - -# Skip if the database is missing (e.g. for CI testing) or misconfigured. -except OperationalError: - pass diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 36d079aee..e0f83964e 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -13,7 +13,7 @@ except ImportError: ) -VERSION = '2.2.0' +VERSION = '2.2.1' BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))