【问题标题】:how to set RAILS_ENV to staging when deployed by "$ cap staging deploy"如何在通过“$ cap staging deploy”部署时将 RAILS_ENV 设置为 staging
【发布时间】:2014-06-29 05:25:53
【问题描述】:

Capistrano 3.1 用于部署 rails app 4.1.0

我在我的 database.yml

中为生产和暂存指定了不同的数据库

在我使用“$ cap staging deploy”部署后,一切都很好,除了使用的是生产数据库,而不是暂存数据库。

我猜服务器上的 RAILS_ENV 没有正确设置,我该怎么做?有什么建议吗?

谢谢

【问题讨论】:

  • 你是在使用独角兽之类的东西来生成铁轨吗?把配置放在那里!
  • 如果是这种情况,请参阅下面我的帖子,但还要确保您的 condig/deploy.rb 中有 set(:unicorn_env) { rails_env }

标签: ruby-on-rails-4 capistrano


【解决方案1】:

我假设你已经安装了 Capistrano Rails Gem 并且它正在为你执行 rake db:migrate。

默认行为是使用 RAILS_ENV 的阶段名称,例如:RAILS_ENV="staging"。

如果你需要它是别的东西,在你的 deploy/staging.rb 中,你可以使用:

设置:rails_env,'测试'

【讨论】:

  • 是的,我安装了 Capistrano Rails。
  • 我曾经尝试添加 set :rails_env, "staging" 但没有运气。有人告诉我这句话将在“rake db:migrate”期间生效,因此设置应用程序 RAILS_ENV 无济于事。
  • 你用什么来运行你的 Rails 应用程序?
【解决方案2】:

修改登台服务器,将独角兽启动标志从“-E production”设置为“-E staging”。 修复此问题。

【讨论】:

    猜你喜欢
    • 2013-03-10
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多