ruby 不带导轨的ActiveRecord 6:连接到多个数据库

blpfk2vs  于 2023-01-25  发布在  Ruby
关注(0)|答案(1)|浏览(108)

我有一个遗留的代码库,我需要升级到ActiveRecord 6。它不使用Rails。
我需要能够连接到多个数据库。
在我的代码中,我有:

conf = ActiveRecord::DatabaseConfigurations.new({ 'test' => db_config })
ActiveRecord::Base.configurations = conf

其中db_config定义为:

def db_config
  {
    'adapter'  => 'mysql2',
    'name'     => 'testdb',
    'host'     => xxx,
    'port'     => 3306,
    'username' => xxx,
    'password' => xxx,
    'database' => 'testdb'
  }
end

然而,当我在rspec中执行单元测试时,我遇到了一个错误:

ActiveRecord::AdapterNotSpecified:
  The `testdb` database is not configured for the `test` environment.

    Available databases configurations are:

    test

我在这里做错了什么?我认为它显示测试配置的事实应该意味着数据库是为测试环境配置的。任何帮助都是最受欢迎的。

e4yzc0pl

e4yzc0pl1#

您正在尝试连接到数据库testdb,而您拥有的数据库是test。请尝试更改配置:

def db_config
  {
    'adapter'  => 'mysql2',
    'name'     => 'test', # was 'testdb`
    'host'     => xxx,
    'port'     => 3306,
    'username' => xxx,
    'password' => xxx,
    'database' => 'test' # was 'testdb`
  }
end

相关问题