gpt4 book ai didi

amazon-web-services - 为什么Passenger会关注登台环境?

转载 作者:行者123 更新时间:2023-12-04 18:43:10 24 4
gpt4 key购买 nike

在我的 Elastic Beanstalk - 容器选项中。 RACK_ENV设置为 staging .

事实上,如果我通过 SSH 连接到 EC2 实例并执行 rails console/var/app/current/然后输入 Rails.env它返回 staging .

阅读http://www.modrails.com/documentation/Users指南 Nginx.html#RackEnv

它说设置一个 RACK_ENV变量,因为默认情况下,该值为 production .

除了 Elastic Beanstalk 日志之外,您会假设一切正常,它说:

[ 2013-11-18 14:28:26.4677 8061/7fb5fe01a700 Pool2/Implementation.cpp:1274 ]: [App 7428 stdout] PG::ConnectionBad (FATAL:  database "foobar_production" does not exist
foobar_production数据库不存在,但 foobar_staging做。那么为什么Passenger 仍然关注生产环境,而它应该关注staging。

最佳答案

This thread on AWS似乎暗示 RACK_ENV 只能设置为“开发”或“生产”之一。

有趣的是,在我自己的测试中,当配置Elastic Beanstalk环境为RACK_ENV=staging时,迁移将针对 staging 运行database.yml 中定义的数据库,但Passenger 仍然尝试连接到production数据库。

我们提出的解决方案是在应用程序下设置两个不同的“环境”,每个环境都有自己的 RDS 数据库。然后在 database.yml 中,我们使用 ENV 参数在运行时连接到正确的数据库:

production:
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>

关于amazon-web-services - 为什么Passenger会关注登台环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20051245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com