Rails、RSpec 和 Factory Girl:如何连接到 2 个数据库

发布于 2024-11-07 19:17:33 字数 559 浏览 0 评论 0原文

我有一个 Ruby on Rails 应用程序,现在有 2 个数据库,一个是主数据库,另一个是我们仅用于消费数据的数据库(这里的其他系统也会使用它,所以我们必须完全按照这种方式使用它)

我'我使用 rspec 和 Factory Girl 来测试模型,但目前我无法测试任何内容,因为 rspec 似乎看不到第二个数据库。

为了建立连接,我使用了一个抽象类来建立连接:

class PublicoBase < ActiveRecord::Base
    establish_connection "publico_#{Rails.env}"
    self.abstract_class = true
end

当我运行 rake spec 时,我收到一个错误,指出数据库 publico_test 不存在。

当我尝试使用 FactoryGirl.create :some_model 加载工厂女孩装置时,会出现此错误。

我还使用 2 个模式来连接到两个数据库 atm。

有人知道这里可以帮助我吗?

I have a Ruby on Rails app that now has 2 databases, the master one and a secondary one that we'll use only to consume data (other systems here will use it as well, so we must use it exactly this way)

I'm using rspec with factory girl to test the models, but currently I can't test nothing, because appearently rspec can't see the second database.

To make the connection I'm using an abstract class which makes the connection:

class PublicoBase < ActiveRecord::Base
    establish_connection "publico_#{Rails.env}"
    self.abstract_class = true
end

And I'm getting an error when I run rake spec saying that the database publico_test doesn't exists.

This error trows when I try to load the factory girl fixtures, using FactoryGirl.create :some_model.

I'm also using 2 schemas to connect to both databases atm.

Someone knows anything that can help me out here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瑾夏年华 2024-11-14 19:17:33

当然,看看 Octopus

这是一个简短的描述:

八达通支持:

  • 分片(具有多个分片,并且
    分组碎片)。
  • 复制
    (主/从支持,具有多个
    奴隶)。
  • 在分片之间移动数据
    与迁移。
  • 管理工具
    数据库配置。 (很快)

Sure, have a look at Octopus.

Here is a short decription:

Octopus supports:

  • Sharding (with multiple shards, and
    grouped shards).
  • Replication
    (Master/slave support, with multiple
    slaves).
  • Moving data between shards
    with migrations.
  • Tools to manage
    database configurations. (soon)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文