【问题标题】:How to create a new environment in Ruby on Rails?如何在 Ruby on Rails 中创建新环境?
【发布时间】:2010-03-03 07:48:32
【问题描述】:

我正在尝试创建一个新环境(构建)以便与 hudson 一起使用它。

我这样做是因为我不想将我的测试数据库与 hudson 测试数据库混为一谈。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    假设您要创建 hudson 环境。

    1. config/environments/hudson.rb 中创建一个新的环境文件。您可以先克隆一个现有的,例如 config/environments/test.rb
    2. config/database.yml 中为您的环境添加一个新的配置块。
    3. 用您的新环境更新您在config 文件夹下可能拥有的任何其他配置文件,一些gem 在config 文件夹下创建自己的ymls
    4. 就是这样。

    现在你可以启动服务器了

    rails server -e hudson
    

    或运行控制台

    rails console hudson
    

    等等。

    如果你使用的是旧版本的 Rails,命令是

    ruby script/server -e hudson
    ruby script/console hudson
    

    【讨论】:

    • 您忘记指定您还必须检查您的 gemfile 并为该环境中的 gem 创建一个组
    • 您还需要为您的新环境在 secrets.yml 文件中设置 secret_key_base
    • 此外,如果您有不同的环境使用相同的配置/环境设置,例如生产环境,您可以将此行添加到新的环境/hudson.rb 文件中以消除冗余 (see this for more info)。需要 Rails.root.join("config/environments/production")
    • 难道我们不需要在secrets.yml 文件中也有一个条目吗?
    【解决方案2】:

    Rails 5 的更新答案

    新建环境文件:

    config/environments/staging.rb
    

    修改以下文件,添加环境键'staging'

    config/cable.yml
    config/database.yml
    config/secrets.yml
    Gemfile (incase you have stage dependent gems)
    

    现在可以照常使用新环境,例如:

    rails server -e staging

    rails console staging

    或进行条件检查:

    rails console staging, Rails.env.staging?
    

    创建新环境和修改这些文件的好起点是复制生产设置。

    【讨论】:

    • 在 Rails 6 中 > 不要忘记 config/webpacker.yml
    【解决方案3】:

    如果您在 Rails 5 应用程序中使用 webpacker,请务必更新您的 config/webpacker.yml。如果您忘记将新环境添加到 config/webpacker.yml,它将回退到使用您的生产配置。

    【讨论】:

      【解决方案4】:

      创建一个文件config/environments/build.rb,其中将包含特定于您的环境的选项。
      config/database.yml 中添加新环境的数据库凭据。

      摇滚!

      【讨论】:

      • 为什么不提到文件secrets.yml
      • 因为secrets.yml 意味着您将凭据硬编码到您的 git 存储库中,这是一种非常糟糕的安全做法。
      • 是的,我的意思是在该文件中您还需要添加密钥 staging: .. 就像 production 对吗?
      猜你喜欢
      • 1970-01-01
      • 2013-04-29
      • 2011-03-24
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      相关资源
      最近更新 更多