【问题标题】:Elastic Beanstalk is not seeing changes in DATABASES setting - DjangoElastic Beanstalk 没有看到 DATABASES 设置的变化 - Django
【发布时间】: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


【解决方案1】:

我也使用 awscli,我的数据库设置看起来和你的一样,而且工作正常。您是否尝试创建一个新的 EB 实例并查看是否可行?

【讨论】:

  • 这就是我以前做过的,它没有问题。只是想知道为什么会发生这种情况/是否有办法避免切换到新实例
猜你喜欢
  • 2014-12-24
  • 2020-07-19
  • 2015-08-22
  • 2017-04-07
  • 2017-08-02
  • 2012-10-17
  • 2021-04-08
  • 2014-12-12
相关资源
最近更新 更多