From c9d7091e571a647b015e2bd6feaff87ef7b4a285 Mon Sep 17 00:00:00 2001 From: Noah Lively Date: Thu, 18 Dec 2025 12:00:42 -0600 Subject: [PATCH] add proxy adapters to 1.8.0 --- .../adapters/mysql2_proxy_adapter.rb | 8 ++++++++ .../adapters/postgresql_proxy_adapter.rb | 8 ++++++++ .../adapters/sqlite3_proxy_adapter.rb | 8 ++++++++ .../adapters/trilogy_proxy_adapter.rb | 8 ++++++++ .../adapters/active_record_proxy_adapter.rb | 19 +++++++++++++++++++ .../adapters/mysql2_proxy_adapter.rb | 9 +++++++++ .../adapters/postgresql_proxy_adapter.rb | 9 +++++++++ .../adapters/sqlite3_proxy_adapter.rb | 9 +++++++++ .../adapters/trilogy_proxy_adapter.rb | 9 +++++++++ 9 files changed, 87 insertions(+) create mode 100644 lib/activerecord-import/active_record/adapters/mysql2_proxy_adapter.rb create mode 100644 lib/activerecord-import/active_record/adapters/postgresql_proxy_adapter.rb create mode 100644 lib/activerecord-import/active_record/adapters/sqlite3_proxy_adapter.rb create mode 100644 lib/activerecord-import/active_record/adapters/trilogy_proxy_adapter.rb create mode 100644 lib/activerecord-import/adapters/active_record_proxy_adapter.rb create mode 100644 lib/activerecord-import/adapters/mysql2_proxy_adapter.rb create mode 100644 lib/activerecord-import/adapters/postgresql_proxy_adapter.rb create mode 100644 lib/activerecord-import/adapters/sqlite3_proxy_adapter.rb create mode 100644 lib/activerecord-import/adapters/trilogy_proxy_adapter.rb diff --git a/lib/activerecord-import/active_record/adapters/mysql2_proxy_adapter.rb b/lib/activerecord-import/active_record/adapters/mysql2_proxy_adapter.rb new file mode 100644 index 00000000..aa742800 --- /dev/null +++ b/lib/activerecord-import/active_record/adapters/mysql2_proxy_adapter.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "active_record/connection_adapters/mysql2_proxy_adapter" +require "activerecord-import/adapters/mysql2_proxy_adapter" + +ActiveSupport.on_load(:active_record_mysql2proxyadapter) do |klass| + klass.include(ActiveRecord::Import::Mysql2ProxyAdapter) +end diff --git a/lib/activerecord-import/active_record/adapters/postgresql_proxy_adapter.rb b/lib/activerecord-import/active_record/adapters/postgresql_proxy_adapter.rb new file mode 100644 index 00000000..74f0c9bb --- /dev/null +++ b/lib/activerecord-import/active_record/adapters/postgresql_proxy_adapter.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "active_record/connection_adapters/postgresql_proxy_adapter" +require "activerecord-import/adapters/postgresql_proxy_adapter" + +ActiveSupport.on_load(:active_record_postgresqlproxyadapter) do |klass| + klass.include(ActiveRecord::Import::PostgreSQLProxyAdapter) +end diff --git a/lib/activerecord-import/active_record/adapters/sqlite3_proxy_adapter.rb b/lib/activerecord-import/active_record/adapters/sqlite3_proxy_adapter.rb new file mode 100644 index 00000000..5743f2d5 --- /dev/null +++ b/lib/activerecord-import/active_record/adapters/sqlite3_proxy_adapter.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "active_record/connection_adapters/sqlite3_proxy_adapter" +require "activerecord-import/adapters/sqlite3_proxy_adapter" + +ActiveSupport.on_load(:active_record_sqlite3proxyadapter) do |klass| + klass.include(ActiveRecord::Import::SQLite3ProxyAdapter) +end diff --git a/lib/activerecord-import/active_record/adapters/trilogy_proxy_adapter.rb b/lib/activerecord-import/active_record/adapters/trilogy_proxy_adapter.rb new file mode 100644 index 00000000..f2fc6735 --- /dev/null +++ b/lib/activerecord-import/active_record/adapters/trilogy_proxy_adapter.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require "active_record/connection_adapters/trilogy_proxy_adapter" +require "activerecord-import/adapters/trilogy_proxy_adapter" + +ActiveSupport.on_load(:active_record_trilogyproxyadapter) do |klass| + klass.include(ActiveRecord::Import::TrilogyProxyAdapter) +end diff --git a/lib/activerecord-import/adapters/active_record_proxy_adapter.rb b/lib/activerecord-import/adapters/active_record_proxy_adapter.rb new file mode 100644 index 00000000..ed4516e8 --- /dev/null +++ b/lib/activerecord-import/adapters/active_record_proxy_adapter.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module ActiveRecord::Import::ActiveRecordProxyAdapter + def insert_many(*args, **kwargs, &block) + sticking_to_primary { super(*args, **kwargs, &block) } + end + + def insert(*args, **kwargs, &block) + sticking_to_primary { super(*args, **kwargs, &block) } + end + + def sticking_to_primary(&block) + ActiveRecord::Base.connected_to(role: writing_role, &block) + end + + def writing_role + ActiveRecord.try(:writing_role) || ActiveRecord::Base.try(:writing_role) || :writing + end +end diff --git a/lib/activerecord-import/adapters/mysql2_proxy_adapter.rb b/lib/activerecord-import/adapters/mysql2_proxy_adapter.rb new file mode 100644 index 00000000..58de6bc2 --- /dev/null +++ b/lib/activerecord-import/adapters/mysql2_proxy_adapter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require "activerecord-import/adapters/mysql2_adapter" +require "activerecord-import/adapters/active_record_proxy_adapter" + +module ActiveRecord::Import::Mysql2ProxyAdapter + include ActiveRecord::Import::Mysql2Adapter + include ActiveRecord::Import::ActiveRecordProxyAdapter +end diff --git a/lib/activerecord-import/adapters/postgresql_proxy_adapter.rb b/lib/activerecord-import/adapters/postgresql_proxy_adapter.rb new file mode 100644 index 00000000..a26eab6c --- /dev/null +++ b/lib/activerecord-import/adapters/postgresql_proxy_adapter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require "activerecord-import/adapters/postgresql_adapter" +require "activerecord-import/adapters/active_record_proxy_adapter" + +module ActiveRecord::Import::PostgreSQLProxyAdapter + include ActiveRecord::Import::PostgreSQLAdapter + include ActiveRecord::Import::ActiveRecordProxyAdapter +end diff --git a/lib/activerecord-import/adapters/sqlite3_proxy_adapter.rb b/lib/activerecord-import/adapters/sqlite3_proxy_adapter.rb new file mode 100644 index 00000000..4be22831 --- /dev/null +++ b/lib/activerecord-import/adapters/sqlite3_proxy_adapter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require "activerecord-import/adapters/sqlite3_adapter" +require "activerecord-import/adapters/active_record_proxy_adapter" + +module ActiveRecord::Import::SQLite3ProxyAdapter + include ActiveRecord::Import::SQLite3Adapter + include ActiveRecord::Import::ActiveRecordProxyAdapter +end diff --git a/lib/activerecord-import/adapters/trilogy_proxy_adapter.rb b/lib/activerecord-import/adapters/trilogy_proxy_adapter.rb new file mode 100644 index 00000000..c94dadb6 --- /dev/null +++ b/lib/activerecord-import/adapters/trilogy_proxy_adapter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require "activerecord-import/adapters/trilogy_adapter" +require "activerecord-import/adapters/active_record_proxy_adapter" + +module ActiveRecord::Import::TrilogyProxyAdapter + include ActiveRecord::Import::TrilogyAdapter + include ActiveRecord::Import::ActiveRecordProxyAdapter +end