From 5900cb505ae7c4cb545185a60517e0c5c0fa5809 Mon Sep 17 00:00:00 2001 From: r7kamura Date: Fri, 16 Apr 2021 14:46:49 +0900 Subject: [PATCH] Add support for Rails 6.1 --- lib/database_rewinder.rb | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/database_rewinder.rb b/lib/database_rewinder.rb index 83edaae..54e47af 100644 --- a/lib/database_rewinder.rb +++ b/lib/database_rewinder.rb @@ -16,7 +16,7 @@ def database_configuration end def create_cleaner(connection_name) - config = database_configuration[connection_name] or raise %Q[Database configuration named "#{connection_name}" is not configured.] + config = configuration_hash_for(connection_name) or raise %Q[Database configuration named "#{connection_name}" is not configured.] Cleaner.new(config: config, connection_name: connection_name, only: @only, except: @except).tap {|c| @cleaners << c} end @@ -84,14 +84,29 @@ def all_table_names(connection) def get_cache_key(connection_pool) if connection_pool.respond_to?(:db_config) # ActiveRecord >= 6.1 - connection_pool.db_config.config + connection_pool.db_config.configuration_hash else connection_pool.spec.config end end + + def configuration_hash_for(connection_name) + if database_configuration.respond_to?(:configs_for) + hash_config = database_configuration.configs_for(env_name: connection_name).first + if hash_config + if hash_config.respond_to?(:configuration_hash) + hash_config.configuration_hash.stringify_keys + else + hash_config.config + end + end + else + database_configuration[connection_name] + end + end end - private_class_method :get_cache_key + private_class_method :configuration_hash_for, :get_cache_key end begin