diff options
| author | Eileen M. Uchitelle <eileencodes@users.noreply.github.com> | 2019-02-04 08:45:48 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-04 08:45:48 -0500 | 
| commit | f4aed53e440a63ef617b4634f160f4c512824870 (patch) | |
| tree | 9a30d4f8aae3015ca647109e07a7aa6a42e27b81 /activerecord/lib | |
| parent | 84ff78be7a021b26fd8484c68065f5d464629745 (diff) | |
| parent | 8d32346cdec04dd85ab682eeb9f4edfcd0c9ccef (diff) | |
| download | rails-f4aed53e440a63ef617b4634f160f4c512824870.tar.gz rails-f4aed53e440a63ef617b4634f160f4c512824870.tar.bz2 rails-f4aed53e440a63ef617b4634f160f4c512824870.zip  | |
Merge pull request #35132 from eileencodes/allow-application-to-change-handler-names
Add ability to change the names of the default handlers
Diffstat (limited to 'activerecord/lib')
| -rw-r--r-- | activerecord/lib/active_record/core.rb | 5 | ||||
| -rw-r--r-- | activerecord/lib/active_record/middleware/database_selector/resolver.rb | 6 | ||||
| -rw-r--r-- | activerecord/lib/active_record/railtie.rb | 1 | 
3 files changed, 8 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index 519acd7605..84604452f7 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -125,6 +125,10 @@ module ActiveRecord        mattr_accessor :connection_handlers, instance_accessor: false, default: {} +      mattr_accessor :writing_role, instance_accessor: false, default: :writing + +      mattr_accessor :reading_role, instance_accessor: false, default: :reading +        class_attribute :default_connection_handler, instance_writer: false        self.filter_attributes = [] @@ -138,7 +142,6 @@ module ActiveRecord        end        self.default_connection_handler = ConnectionAdapters::ConnectionHandler.new -      self.connection_handlers = { writing: ActiveRecord::Base.default_connection_handler }      end      module ClassMethods diff --git a/activerecord/lib/active_record/middleware/database_selector/resolver.rb b/activerecord/lib/active_record/middleware/database_selector/resolver.rb index 0eeb0453ef..a84c292714 100644 --- a/activerecord/lib/active_record/middleware/database_selector/resolver.rb +++ b/activerecord/lib/active_record/middleware/database_selector/resolver.rb @@ -47,7 +47,7 @@ module ActiveRecord            def read_from_primary(&blk)              ActiveRecord::Base.connection.while_preventing_writes do -              ActiveRecord::Base.connected_to(role: :writing) do +              ActiveRecord::Base.connected_to(role: ActiveRecord::Base.writing_role) do                  instrumenter.instrument("database_selector.active_record.read_from_primary") do                    yield                  end @@ -56,7 +56,7 @@ module ActiveRecord            end            def read_from_replica(&blk) -            ActiveRecord::Base.connected_to(role: :reading) do +            ActiveRecord::Base.connected_to(role: ActiveRecord::Base.reading_role) do                instrumenter.instrument("database_selector.active_record.read_from_replica") do                  yield                end @@ -64,7 +64,7 @@ module ActiveRecord            end            def write_to_primary(&blk) -            ActiveRecord::Base.connected_to(role: :writing) do +            ActiveRecord::Base.connected_to(role: ActiveRecord::Base.writing_role) do                instrumenter.instrument("database_selector.active_record.wrote_to_primary") do                  yield                ensure diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb index 017e279080..aac49a92b4 100644 --- a/activerecord/lib/active_record/railtie.rb +++ b/activerecord/lib/active_record/railtie.rb @@ -197,6 +197,7 @@ end_error      # and then establishes the connection.      initializer "active_record.initialize_database" do        ActiveSupport.on_load(:active_record) do +        self.connection_handlers = { writing_role => ActiveRecord::Base.default_connection_handler }          self.configurations = Rails.application.config.database_configuration          establish_connection        end  | 
