掲題の件、テスト書いていることで発見できまして、APIリファレンスを読むと割と合点はいきましたが 間違えなどあれば、指摘いただきたいです。
環境 - rails 5.0.0.1(puma) - ruby 2.3.1
ActiveRecord::Base.establishを何度も読み出すことで、queryを発行した際に事前に切り替えたDBではなく
切り替え前のDBのままqueryを実行する不具合がテストで見つかりましてその改善策です。
def change_schema
ApplicationRecord.remove_connection
ActiveRecord::Base.establish YAML.load_file(Rails.root.join('config', 'database.yml')[Rails.env]
end
clear_all_connection!などを実行しても、上手くリセットされていなかったので、remove_connectionからconnectionをdisconnectで切断してから
動作するようになりました。
テストは恩恵も大きいし、テストを定常的に書くのも重要ですね。