Module: ActiveRecord::Bulkoperation

Defined in:
lib/activerecord_bulkoperation.rb,
lib/activerecord_bulkoperation/base.rb,
lib/activerecord_bulkoperation/version.rb,
lib/activerecord_bulkoperation/util/entity_hash.rb,
lib/activerecord_bulkoperation/util/sequence_cache.rb,
lib/activerecord_bulkoperation/util/transaction_object.rb,
lib/activerecord_bulkoperation/util/flush_dirty_objects.rb,
lib/activerecord_bulkoperation/adapters/abstract_adapter.rb,
lib/activerecord_bulkoperation/adapters/oracle_enhanced_adapter.rb,
lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/oci_connection.rb,
lib/activerecord_bulkoperation/connection_adapters/oracle_enhanced/jdbc_connection.rb

Defined Under Namespace

Modules: AbstractAdapter, BatchUpdate, OracleEnhancedAdapter, Util

Constant Summary collapse

ActiveRecordVersion =
Gem.loaded_specs['activerecord'].version
AdapterPath =
'activerecord_bulkoperation/active_record/adapters'
VERSION =
'0.2.3'

Class Method Summary collapse

Class Method Details

.base_adapter(adapter) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/activerecord_bulkoperation/base.rb', line 5

def self.base_adapter(adapter)
  case adapter
  when 'mysqlspatial' then 'mysql'
  when 'mysql2spatial' then 'mysql2'
  when 'spatialite' then 'sqlite3'
  when 'oracle_enhanced' then 'oracle_enhanced'
  else adapter
  end
end

.load_from_connection_pool(connection_pool) ⇒ Object

Loads the import functionality for the passed in ActiveRecord connection



26
27
28
29
30
# File 'lib/activerecord_bulkoperation/base.rb', line 26

def self.load_from_connection_pool(connection_pool)
  # currently only oracle_enhanced_adapter is supported and connection_pool.spec does not work with Rails 6.1.
  # require_adapter connection_pool.spec.config[:adapter]
  require_adapter('oracle_enhanced')
end

.require_adapter(adapter) ⇒ Object

Loads the import functionality for a specific database adapter



16
17
18
19
20
21
22
23
# File 'lib/activerecord_bulkoperation/base.rb', line 16

def self.require_adapter(adapter)
  require File.join(AdapterPath,'/abstract_adapter')
  begin
    require File.join(AdapterPath,"/#{base_adapter(adapter)}_adapter")
  rescue LoadError
    # fallback
  end
end