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