Rails 4.2.6 には、もともと MongoDB (Mongoid 5 経由) をメイン データベースとして使用していた Web アプリケーションがあります。ただし、MySQL データベースに接続して、アプリの追加データのみを読み取る必要があります。
これまでのところ、プロジェクトで ActiveRecord を必要とし、開発環境で前述のデータベースとの接続を確立することができました。この件に関する私の構成ファイルは次のとおりです。
モンゴイド.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データベースを作成することを検討していましたが、ActiveRecordをテストデータベースに接続せずにのみ使用するように設定できるかどうかを最初に知りたいmongo_test
.
私がやりたいことをすることは可能ですか?誰もこれを行う方法を知っていますか?