47 lines
1.6 KiB
Python
Executable File
47 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
"""Django manage.py"""
|
|
import os
|
|
import sys
|
|
import warnings
|
|
|
|
from defusedxml import defuse_stdlib
|
|
from django.utils.autoreload import DJANGO_AUTORELOAD_ENV
|
|
|
|
from lifecycle.migrate import run_migrations
|
|
from lifecycle.wait_for_db import wait_for_db
|
|
|
|
warnings.filterwarnings("ignore", "SelectableGroups dict interface")
|
|
warnings.filterwarnings(
|
|
"ignore",
|
|
"defusedxml.lxml is no longer supported and will be removed in a future release.",
|
|
)
|
|
warnings.filterwarnings(
|
|
"ignore",
|
|
"defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.",
|
|
)
|
|
|
|
defuse_stdlib()
|
|
|
|
if __name__ == "__main__":
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "authentik.root.settings")
|
|
wait_for_db()
|
|
if (
|
|
len(sys.argv) > 1
|
|
# Explicitly only run migrate for server and worker
|
|
# `bootstrap_tasks` is a special case as that command might be triggered by the `ak`
|
|
# script to pre-run certain tasks for an automated install
|
|
and sys.argv[1] in ["dev_server", "worker", "bootstrap_tasks"]
|
|
# and don't run if this is the child process of a dev_server
|
|
and os.environ.get(DJANGO_AUTORELOAD_ENV, None) is None
|
|
):
|
|
run_migrations()
|
|
try:
|
|
from django.core.management import execute_from_command_line
|
|
except ImportError as exc:
|
|
raise ImportError(
|
|
"Couldn't import Django. Are you sure it's installed and "
|
|
"available on your PYTHONPATH environment variable? Did you "
|
|
"forget to activate a virtual environment?"
|
|
) from exc
|
|
execute_from_command_line(sys.argv)
|