Module: Switchman::ActiveRecord::Migrator
- Defined in:
- lib/switchman/active_record/migration.rb
Instance Method Summary collapse
-
#generate_migrator_advisory_lock_id ⇒ Object
significant change: hash shard name, not database name.
-
#with_advisory_lock_connection ⇒ Object
significant change: strip out prefer_secondary from config.
Instance Method Details
#generate_migrator_advisory_lock_id ⇒ Object
significant change: hash shard name, not database name
24 25 26 27 |
# File 'lib/switchman/active_record/migration.rb', line 24 def generate_migrator_advisory_lock_id shard_name_hash = Zlib.crc32(Shard.current.name) ::ActiveRecord::Migrator::MIGRATOR_SALT * shard_name_hash end |
#with_advisory_lock_connection ⇒ Object
significant change: strip out prefer_secondary from config
30 31 32 33 34 35 36 37 38 |
# File 'lib/switchman/active_record/migration.rb', line 30 def with_advisory_lock_connection pool = ::ActiveRecord::ConnectionAdapters::ConnectionHandler.new.establish_connection( ::ActiveRecord::Base.connection_db_config.configuration_hash.except(:prefer_secondary) ) pool.with_connection { |connection| yield(connection) } # rubocop:disable Style/ExplicitBlockArgument ensure pool&.disconnect! end |