From 7b150f1b9827d3a7d7812cfafde9ba4f25b62d13 Mon Sep 17 00:00:00 2001 From: Nate Vick Date: Tue, 20 Jan 2026 08:55:15 -0800 Subject: [PATCH] Fix test helpers to restore original database connection The minitest and rspec helpers were changing ActiveRecord::Base.connection to ClickHouse without restoring it afterward. This broke multi-database Rails apps where the primary database is PostgreSQL/MySQL. Co-Authored-By: Claude Opus 4.5 --- lib/clickhouse-activerecord/minitest.rb | 3 +++ lib/clickhouse-activerecord/rspec.rb | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/clickhouse-activerecord/minitest.rb b/lib/clickhouse-activerecord/minitest.rb index b70d9ab8..3efff9e8 100644 --- a/lib/clickhouse-activerecord/minitest.rb +++ b/lib/clickhouse-activerecord/minitest.rb @@ -4,10 +4,13 @@ module ClickhouseActiverecord module TestHelper def before_setup super + original_connection_config = ActiveRecord::Base.connection_db_config ActiveRecord::Base.configurations.configurations.select { |x| x.env_name == Rails.env && x.adapter == 'clickhouse' }.each do |config| ActiveRecord::Base.establish_connection(config) ActiveRecord::Base.connection.truncate_tables(*ActiveRecord::Base.connection.tables) end + ensure + ActiveRecord::Base.establish_connection(original_connection_config) if original_connection_config end end end diff --git a/lib/clickhouse-activerecord/rspec.rb b/lib/clickhouse-activerecord/rspec.rb index 5d3b97dd..8de76234 100644 --- a/lib/clickhouse-activerecord/rspec.rb +++ b/lib/clickhouse-activerecord/rspec.rb @@ -2,9 +2,11 @@ RSpec.configure do |config| config.before do - ActiveRecord::Base.configurations.configurations.select { |x| x.env_name == Rails.env && x.adapter == 'clickhouse' }.each do |config| - ActiveRecord::Base.establish_connection(config) + original_connection_config = ActiveRecord::Base.connection_db_config + ActiveRecord::Base.configurations.configurations.select { |x| x.env_name == Rails.env && x.adapter == 'clickhouse' }.each do |db_config| + ActiveRecord::Base.establish_connection(db_config) ActiveRecord::Base.connection.truncate_tables(*ActiveRecord::Base.connection.tables) end + ActiveRecord::Base.establish_connection(original_connection_config) end end