В настоящее время я сталкиваюсь с довольно раздражающей проблемой с моим сервером Django в AWS Beanstalk.
Конечные точки моей базы данных и хранилища S3, псевдонимы учетных записей и ключи существуют как переменные env, поэтому, например, я хотел бы получить доступ к своей базе данных следующим образом
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['RDS_DB_NAME'],
'USER': os.environ['RDS_USERNAME'],
'PASSWORD': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
'OPTIONS': {
'autocommit': True,
},
}
}
Проблема возникает, когда мне нужновнести изменения в мою модель.Я хотел бы иметь возможность запускать миграции на Beanstalk после каждого обновления, поэтому у меня есть это в моем конфигурационном файле ebextensions.
container_commands:
01_migrate:
command: 'source /opt/python/run/venv/bin/activate && django-admin.py makemigrations'
command: 'source /opt/python/run/venv/bin/activate && django-admin.py migrate'
leader_only: true
Но это не работает, так как каким-то образом я получаю ошибку, что средаПеременные, которые мне нужны, не существуют на данном этапе!Поэтому, если я хочу выполнить мою команду контейнера, мне нужно будет выставить мои переменные env для моего settings.py
.Теперь это полностью противоречит цели переменных env.
Почему я получаю эту ошибку и есть ли способ обойти это?