【问题标题】:Handling environment changes in a production rails environment处理生产 Rails 环境中的环境变化
【发布时间】:2013-12-31 07:15:43
【问题描述】:

我参与过几个 Rails 项目,但他们一直都是我自己完成的一次性项目,我只有少数几个项目部署到了​​类似 heroku 的项目中并经常使用。我刚刚和其他几个开发人员一起开始了一个项目,我对这种环境并不完全熟悉。特别是,处理对我的本地环境的更改并保持其他开发人员的环境同步。

例如,我刚刚为 ActionMailer 添加了配置以使用我们的 sendgrid 帐户并将值作为环境变量放在我的系统上。当其他开发人员之一从源代码管理中提取我的更改时,他们将没有这些环境变量。所以,我必须手动向他们发送一些东西来告诉他们要添加什么。

我的问题的重点是,处理此类事情的规范是什么?我会想象一些使用 rake 的东西?有没有办法让它自动化,以便在完成拉取时自动进行更改?

【问题讨论】:

    标签: ruby-on-rails ruby development-environment


    【解决方案1】:

    您可以在配置文件中为不同的环境添加配置,并在您的环境中使用它们。

    //例如:

    common: &common
      http_auth:
        username: 
        password:
    
     development
       <<: *common
     test:
      <<: *common
    
     staging:
      <<: *common
    
     production:
      <<: *common
    

    这些定义的变量可以通过 AppConfig.http_auth["username"], AppConfig.http_auth["password"] 在您的应用程序中使用

    如果您部署到 heroku,您可以指定可以在 heroku 上设置并按如下方式访问的 ENV 变量:

    config.action_mailer.smtp_settings       = {
     :address        => smtp.sendgrid.net,
     :port           => ENV['SENDGRID_PORT'],
     :authentication => :plain,
     :user_name      => ENV['SENDGRID_USER_NAME'],
     :password       => ENV['SENDGRID_PASSWORD'],
     :domain         => AppConfig.preferred_host
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-31
      • 2013-06-23
      • 2019-10-14
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      相关资源
      最近更新 更多