mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #1576: Move PostgreSQL validation logic into the relevant migration
This commit is contained in:
@ -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=[
|
||||||
|
@ -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
|
|
||||||
|
Reference in New Issue
Block a user