Проблема :
Я хочу переключить базу данных Django после изменения переменных среды во время выполнения
Django файл app settings.py
PG_DB_USER = os.environ.get('PG_DB_USER', '')
PG_DB_NAME = os.environ.get('PG_DB_NAME', '')
PG_DB_PASS = os.environ.get('PG_DB_PASS', '')
PG_DB_HOST = os.environ.get('PG_DB_HOST', '')
PG_DB_PORT = os.environ.get('PG_DB_PORT', '')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': PG_DB_NAME,
'USER': PG_DB_USER,
'PASSWORD': PG_DB_PASS,
'HOST': PG_DB_HOST,
'PORT': PG_DB_PORT,
}
}
Существует файл docker -compose.yml, в котором перечислены различные службы вместе с соответствующей переменной среды. После успешного запуска контейнеров Docker я могу увидеть все переменные среды внутри контейнеров с помощью команды printenv
или env
.
Вещи, которые я пробовал:
Я пытаюсь переключить переменную окружения с помощью команды export PG_DB_NAME=****
внутри контейнера. Но после выполнения команд python manage.py shell
, а затем import os and os.environ
я не могу увидеть измененную переменную среды PG_DB_NAME=****
.
Ps: всю эту команду я буду выполнять из сценария bash, чтобы изменить Django база данных во время выполнения.
Заранее спасибо. Любая помощь приветствуется.