From 47f1a88d52678b20b5abe6c8183f3a75674cbc2c Mon Sep 17 00:00:00 2001 From: Sergii Borsuk Date: Wed, 9 Sep 2020 01:51:40 +0000 Subject: [PATCH] Resolve "Create super-user if absent at the app start" --- backend/createuser_ifabsent.py | 23 +++++++++++++++++++++++ backend/model_garden/settings.py | 5 +++++ docker-compose.yml | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 backend/createuser_ifabsent.py diff --git a/backend/createuser_ifabsent.py b/backend/createuser_ifabsent.py new file mode 100644 index 00000000..1c0b4454 --- /dev/null +++ b/backend/createuser_ifabsent.py @@ -0,0 +1,23 @@ +import logging +import os + +from django import setup +from django.conf import settings +from django.contrib.auth import get_user_model + +logger = logging.getLogger(__name__) + +if __name__ == "__main__": + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'model_garden.settings') + setup() + + username = settings.DJANGO_ROOT_USER + email = settings.DJANGO_ROOT_EMAIL + password = settings.DJANGO_ROOT_PASSWORD + + if username is not None and email is not None and password is not None: + User = get_user_model() + + if not User.objects.filter(username=username).exists(): + User.objects.create_superuser(username, email, password) + logger.info(f"Super user created: {username} - {email}") diff --git a/backend/model_garden/settings.py b/backend/model_garden/settings.py index fd0d12a7..755ed2fa 100644 --- a/backend/model_garden/settings.py +++ b/backend/model_garden/settings.py @@ -177,6 +177,11 @@ STATIC_URL = '/static/' +# SUPER USER +DJANGO_ROOT_USER = env('DJANGO_ROOT_USER', default=None) +DJANGO_ROOT_EMAIL = env('DJANGO_ROOT_EMAIL', default=None) +DJANGO_ROOT_PASSWORD = env('DJANGO_ROOT_PASSWORD', default=None) + # AWS AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID', default=None) AWS_SECRET_KEY = env('AWS_SECRET_KEY', default=None) diff --git a/docker-compose.yml b/docker-compose.yml index 2f35f1ea..5e68f65e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,7 @@ services: build: context: backend restart: always - command: bash -c "python3 manage.py migrate && python3 manage.py loaddata default_bucket && python3 manage.py runserver 0.0.0.0:9000" + command: bash -c "python3 manage.py migrate && python3 manage.py loaddata default_bucket && python3 createuser_ifabsent.py && python3 manage.py runserver 0.0.0.0:9000" environment: DJANGO_DB_HOST: postgres DJANGO_DB_PORT: 5432