【发布时间】:2019-03-03 02:46:33
【问题描述】:
我一直在使用 Elastic Beanstalk 在 RDS 中创建的 ebdb 数据库。看来 Elastic Beanstalk 控制台中的 RDS_DB_NAME 环境变量可以留空而不影响应用程序的运行:
我重新启动了应用服务器(使用 EB 控制台),但没有任何效果。我注意到当我进入RDS时,数据库名称仍然奇怪地列为ebdb:
任何人都可以确认这种行为,并且 - 如果我是正确的 - 我如何切换到 RDS 上的不同数据库? (在我的情况下,我正在测试备份和恢复,并希望我的 Rails 5.2 应用程序暂时指向恢复的数据库。)
FWIW,我有标准的 Rails config/database.yml:
production:
<<: *default
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>
【问题讨论】:
-
如果我假设 AWS 没有以某种方式缓存环境数据,那么我唯一想到的是您的应用程序没有在生产环境中运行?
-
谢谢,@MladenIlić。好主意,但我已检查 RACK_ENV 是否设置为“生产”。也许那个变量也没有任何作用!
-
尝试将
RAILS_ENV设置为production。 -
很遗憾,无法设置数据库的名称。正如 Nezir 下面建议的那样,通过 EB 创建数据库仅用于测试目的。出于生产目的,请直接使用 AWS RDS 创建数据库。然后将 AWS RDS 的元数据作为环境变量存储在 Elastic Beanstalk 中。
-
使用双引号,例如:
标签: ruby-on-rails postgresql environment-variables amazon-rds amazon-elastic-beanstalk