From 098804017278a03f41b2e96a21ff1b760b3d620f Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 12 Nov 2020 18:04:50 +1100 Subject: [PATCH] Catch exception where InvenTree setting object is referenced but the database is not migrated yet --- InvenTree/common/models.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index dc53896eaa..53803dd94e 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -16,6 +16,7 @@ from djmoney.models.fields import MoneyField from djmoney.contrib.exchange.models import convert_money from djmoney.contrib.exchange.exceptions import MissingRate +from django.db.utils import OperationalError from django.utils.translation import ugettext as _ from django.core.validators import MinValueValidator from django.core.exceptions import ValidationError @@ -280,12 +281,20 @@ class InvenTreeSetting(models.Model): try: setting = InvenTreeSetting.objects.filter(key__iexact=key).first() - except (InvenTreeSetting.DoesNotExist): - # Create the setting if it does not exist - setting = InvenTreeSetting.create( - key=key, - value=InvenTreeSetting.get_default_value(key) - ) + except OperationalError: + # Settings table has not been created yet! + return None + except (ValueError, InvenTreeSetting.DoesNotExist): + + try: + # Attempt Create the setting if it does not exist + setting = InvenTreeSetting.create( + key=key, + value=InvenTreeSetting.get_default_value(key) + ) + except OperationalError: + # Settings table has not been created yet + setting = None return setting