【问题标题】:rails mongoid 2 pass db connectionrails mongoid 2 pass db连接
【发布时间】:2021-03-17 14:52:18
【问题描述】:

我们有一种情况,我们希望从我们的 rails 应用程序中为 mongo 连接进行 2 次传递配置,有没有办法结合使用 mongoid.yml 和应用程序初始化程序来做到这一点。我们希望在我们的 mongoid.yml 中有这个:

production:
  clients:
    default:
      database: data_production
      hosts:
        - localhost:27017
      options:

production_2:
  clients:
    default:
      database: data_production
      hosts:
        - localhost:27017
      options:
        user: special
        password: ENV['DB_PASSWORD']

我们想要发生的是尝试连接到生产环境,但如果身份验证失败,则回退到一个 env 变量。我的问题是:

  1. 这可以用一个 db 完成吗(生产是否可以有一个啄食顺序,如果失败就试试这个)

  2. yml 文件可以读取环境变量吗?

  3. 如果 1 不可能,我们可以在初始化程序中配置应用程序,或者说“如果 Rails.env.production?尝试连接到生产环境,如果你不能尝试连接到 production_2”?

感谢您的帮助, 凯文

【问题讨论】:

    标签: ruby-on-rails mongoid


    【解决方案1】:

    Mongoid 不支持遍历各种配置以找到一个有效的配置。相反,所有 MongoDB 驱动程序都执行后台初始化 - 它们不需要现有或工作数据库来构建客户端,并且查询/操作将等待数据库自行配置。

    如果您想遍历配置,您可以编写一个脚本来执行此操作并生成一个有效的mongoid.yml,然后调用服务器/控制台/等。

    环境变量见https://docs.mongodb.com/mongoid/master/tutorials/mongoid-configuration/#erb-preprocessing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多