【问题标题】:How to use in-memory MongoDB with Rails, Mongoid, and Rspec?如何将内存中的 MongoDB 与 Rails、Mongoid 和 Rspec 一起使用?
【发布时间】:2021-07-11 05:45:34
【问题描述】:

在单元或集成测试中,我需要能够使用内存中的 mongoDB 只是为了方便。我能做到吗?我尝试搜索解决方案,但没有关于如何编写 mongoid.yml 以在内存中使用的教程。

除此之外,我可以只在 mongoid.yml 中使用默认环境,而不是为开发和生产编写副本吗?就像搬家一样

development:
  client:
    ...

production:
  client:
    ...

进入

default: &default
  client:
    ...

【问题讨论】:

    标签: ruby-on-rails ruby mongodb mongoid rspec-rails


    【解决方案1】:

    Mongoid 配置(在你的例子中是 mongoid.yml)告诉客户端数据库在哪里。它不配置数据库。因此,没有 Mongoid 选项可以控制数据库的启动方式。

    如果您的代码使用事务,最好的办法是创建一个zram 分区并使用 mongod 的--dbpath 参数使其将其数据存储在 zram 中。如果你的内存比你知道的要多,你也可以使用 tmpfs。

    如果您的代码不使用事务,请尝试--storageEngine ephemeralForTest

    mongoid.yml 需要为您使用的每个环境进行配置。该文件没有默认环境的概念(由 Rails 启动应用程序时决定),也不能省略环境。但是,您可以使用 YAML 锚来避免跨环境重复配置。

    【讨论】:

      猜你喜欢
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2013-02-19
      • 1970-01-01
      相关资源
      最近更新 更多