Add new management command to create superuser if not present. Use that command in the entrypoint scripts
This commit is contained in:
parent
57b475cbe1
commit
2d718c5e3a
@ -3,4 +3,6 @@ source /home/shimatta/kenkyusho/.venv/bin/activate
|
|||||||
cd /home/shimatta/kenkyusho/shimatta_kenkyusho
|
cd /home/shimatta/kenkyusho/shimatta_kenkyusho
|
||||||
python manage.py migrate --settings shimatta_kenkyusho.settings_production
|
python manage.py migrate --settings shimatta_kenkyusho.settings_production
|
||||||
python manage.py collectstatic --settings shimatta_kenkyusho.settings_production --noinput
|
python manage.py collectstatic --settings shimatta_kenkyusho.settings_production --noinput
|
||||||
|
python manage.py create_kenkyusho_admin_user --settings shimatta_kenkyusho.settings_production
|
||||||
|
|
||||||
gunicorn -w 4 --bind 0.0.0.0:8000 shimatta_kenkyusho.wsgi:application
|
gunicorn -w 4 --bind 0.0.0.0:8000 shimatta_kenkyusho.wsgi:application
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
source /home/shimatta/kenkyusho/.venv/bin/activate
|
source /home/shimatta/kenkyusho/.venv/bin/activate
|
||||||
cd /home/shimatta/kenkyusho/shimatta_kenkyusho
|
cd /home/shimatta/kenkyusho/shimatta_kenkyusho
|
||||||
python manage.py migrate --settings shimatta_kenkyusho.settings_production
|
python manage.py migrate --settings shimatta_kenkyusho.settings_production
|
||||||
|
python manage.py create_kenkyusho_admin_user --settings shimatta_kenkyusho.settings_production
|
||||||
|
|
||||||
python manage.py runserver 0.0.0.0:8000 --settings shimatta_kenkyusho.settings_production
|
python manage.py runserver 0.0.0.0:8000 --settings shimatta_kenkyusho.settings_production
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
from django.core.management.base import BaseCommand, CommandParser
|
||||||
|
from django.contrib.auth import get_user_model
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = "Create a default superuser if no superuser is already present. This aids automatic deployment inside a container."
|
||||||
|
|
||||||
|
def add_arguments(self, parser: CommandParser):
|
||||||
|
parser.add_argument('--user',
|
||||||
|
help='Username to create if no admin account is present',
|
||||||
|
default='admin')
|
||||||
|
parser.add_argument('--password',
|
||||||
|
help='Password to set for newly created user. Ignored, if any admin user is already present',
|
||||||
|
default='admin')
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
User = get_user_model()
|
||||||
|
|
||||||
|
# Query if there is any admin user
|
||||||
|
if not User.objects.filter(is_superuser=True).exists():
|
||||||
|
self.stdout.write(f'No superuser present. Creating {options['user']} with supplied password')
|
||||||
|
User.objects.create_superuser(username=options['user'], password=options['password'])
|
||||||
|
else:
|
||||||
|
self.stdout.write('At least one superuser already exists. Skipping superuser creation')
|
Loading…
Reference in New Issue
Block a user