【发布时间】:2017-05-05 00:43:12
【问题描述】:
使用 Postgres 在 EB 上部署 Django 时出现奇怪的问题。
上下文:使用 postgresql 9.5 在 Elastic Beanstalk 上部署 Django 应用程序。我在两台单独的 Windows 10 机器上进行了尝试,结果相同。 Python 3.5 和 Django 1.10.4。
问题:使用 RDS 环境变量连接数据库时,我不小心在 settings.py 中查找“RDS_USER”而不是“RDS_USERNAME”。这自然会为“RDS_USER”引发 KeyError。
但是,如果我将其更改为正确的值,提交更改并重新部署,eb 不会获取更改。
尝试运行迁移时,“RDS_USER”仍然出现相同的 KeyError。
我可以在为 postgres 修改 settings.py 并添加一些命令(venv、迁移)/包(git、postgresql95-devel)之后复制它。
有其他人经历过吗?
如果我创建一个新实例并最初使用正确的变量名称进行部署,它可以正常工作。
settings.py:
if 'RDS_DB_NAME' in os.environ:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'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']
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'name',
'USER':'user',
'PASSWORD':'password',
'HOST':'localhost',
'PORT':''
}
}
【问题讨论】:
-
您是使用控制台还是 awscli 进行部署?
标签: python django postgresql amazon-web-services amazon-elastic-beanstalk