Browse Source

Bypass PostgreSQL 9.4 check if database is inaccessible

Jeremy Stretch 7 years ago
parent
commit
17a45109f4
1 changed files with 13 additions and 7 deletions
  1. 13 7
      netbox/netbox/__init__.py

+ 13 - 7
netbox/netbox/__init__.py

@@ -1,12 +1,18 @@
 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
-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))
+# 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