状況
Rails にて外部データベース(複数データベース)を用いている状況で CI*1 で RSpec を回そうとしました。すると、データベース接続エラーがどうやっても解消できず、6時間溶かしました*2。
結論(解決方法)
モデルのファイル中に establish_connection :outer_database
などと記述がある場合には、outer_database
の接続設定をしてやる必要がある。RSpecの実行時に接続を試みるので、接続ができない時点でエラーになる。
補足
現実的には外部DBに接続して CI を回すということはないと思うので、例えば以下のように分岐させるのが一つの手段かと思います。
establish_connection :tweet_storage unless ENV['CI'] == 'true'