From be41be3981858e182bb9d7029a09496f305ee94d Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 2 Apr 2021 00:03:56 +1100 Subject: [PATCH] Add "wait_for_db" management command --- .../management/commands/wait_for_db.py | 31 +++++++++++++++++++ InvenTree/config_template.yaml | 5 --- docker/Dockerfile | 1 + 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 InvenTree/InvenTree/management/commands/wait_for_db.py diff --git a/InvenTree/InvenTree/management/commands/wait_for_db.py b/InvenTree/InvenTree/management/commands/wait_for_db.py new file mode 100644 index 0000000000..5d152d26ca --- /dev/null +++ b/InvenTree/InvenTree/management/commands/wait_for_db.py @@ -0,0 +1,31 @@ +""" +Custom management command, wait for the database to be ready! +""" + +from django.core.management.base import BaseCommand + +from django.db import connections +from django.db.utils import OperationalError + +import time + + +class Command(BaseCommand): + """ + django command to pause execution until the database is ready + """ + + def handle(self, *args, **kwargs): + self.stdout.write("Waiting for database...") + + db_conn = None + + while not db_conn: + try: + # get the database with keyword 'default' from settings.py + db_conn = connections['default'] + # prints success messge in green + self.stdout.write(self.style.SUCCESS('InvenTree database connected')) + except OperationalError: + self.stdout.write("Database unavailable, waiting 5 seconds ...") + time.sleep(5) diff --git a/InvenTree/config_template.yaml b/InvenTree/config_template.yaml index bab673306f..7ce62e887d 100644 --- a/InvenTree/config_template.yaml +++ b/InvenTree/config_template.yaml @@ -9,11 +9,6 @@ database: # Uncomment (and edit) one of the database configurations below, # or specify database options using environment variables - - # Default installation uses a simple sqlite database - # For production, consider changing this! - ENGINE: sqlite3 - NAME: '/home/inventree/database.sqlite3' # Refer to the django documentation for full list of options diff --git a/docker/Dockerfile b/docker/Dockerfile index 4d59ec4b8e..c49c6e53f0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -23,6 +23,7 @@ ENV INVENTREE_PORT="${INVENTREE_PORT}" # InvenTree paths ENV INVENTREE_SRC_DIR="${INVENTREE_HOME}/src" +ENV INVENTREE_MNG_DIR="${INVENTREE_SRC_DIR}/InvenTree" ENV INVENTREE_STATIC_ROOT="${INVENTREE_HOME}/static" ENV INVENTREE_MEDIA_ROOT="${INVENTREE_HOME}/media" ENV INVENTREE_LOG_DIR="${INVENTREE_HOME}/log"