我在 Rails 4.2.6 中有一个 Web 应用程序,它最初使用 MongoDB(通过 Mongoid 5)作为其主数据库。但是,现在我需要连接到 MySQL 数据库才能仅为我的应用程序读取一些额外的数据。
到目前为止,我的项目中已经需要 ActiveRecord,并且能够在开发环境中与上述数据库建立连接。我的配置文件是:
mongoid.yml
development:
clients:
default:
database: mongo_development
hosts:
- localhost:27017
options:
test:
clients:
default:
database: mongo_test
hosts:
- localhost:27017
options:
read:
mode: :primary
max_pool_size: 1
options:
raise_not_found_error: false
数据库.yml
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: mysql_development
pool: 5
username: user
password: pass
socket: /var/run/mysqld/mysqld.sock
当我运行我的测试套件时,问题就来了。我正在使用 RSpec 并执行bundle exec rspec spec
会产生以下错误消息:
/home/user/.rvm/gems/ruby-2.1.6@global/gems/activerecord-4.2.6/lib/active_record/connection_adapters/connection_specification.rb:248:in `resolve_symbol_connection': 'test' database is not configured. Available: ["development"] (ActiveRecord::AdapterNotSpecified)
ActiveRecord 抱怨没有要连接的测试数据库,但问题是我没有用于测试目的的 MySQL 数据库:我编写的规范仅与 Mongoid 模型交互。
我正在考虑创建一个空的 MySQL 数据库作为 hack,但我想首先知道是否可以将 ActiveRecord 配置为不连接到测试数据库并仅使用mongo_test
.
有可能做我想做的事吗?有人知道怎么做这个吗?