From e1bdd14fff3323709968a80e57c976b62b2a545c Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Sun, 25 Mar 2018 23:05:46 +0200 Subject: [PATCH] Fix #140: Better error messages in case of missing environment variable --- api/manage.py | 7 +++++++ changes/changelog.d/140.enhancement | 1 + 2 files changed, 8 insertions(+) create mode 100644 changes/changelog.d/140.enhancement diff --git a/api/manage.py b/api/manage.py index d99574eb..c8db95ed 100755 --- a/api/manage.py +++ b/api/manage.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +import django import os import sys @@ -7,6 +8,12 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__))) if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production") + # we're doing this here since otherwise, missing environment + # files in settings result in AttributeError being raised, generating + # a cryptic django.core.exceptions.AppRegistryNotReady error. + # To prevent that, we explicitely load settings here before anything + # else, so we fail fast with a relevant error. See #140 for more details. + django.setup() from django.core.management import execute_from_command_line diff --git a/changes/changelog.d/140.enhancement b/changes/changelog.d/140.enhancement new file mode 100644 index 00000000..9bc3aab9 --- /dev/null +++ b/changes/changelog.d/140.enhancement @@ -0,0 +1 @@ +Better error messages in case of missing environment variables (#140) -- GitLab