Method: ActiveRecord::ConnectionAdapters::SchemaCache#initialize

Defined in:
lib/active_record/connection_adapters/schema_cache.rb

#initialize(conn) ⇒ SchemaCache

Returns a new instance of SchemaCache.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/active_record/connection_adapters/schema_cache.rb', line 7

def initialize(conn)
  @connection = conn
  @tables     = {}

  @columns = Hash.new do |h, table_name|
    h[table_name] = connection.columns(table_name, "#{table_name} Columns")
  end

  @columns_hash = Hash.new do |h, table_name|
    h[table_name] = Hash[columns[table_name].map { |col|
      [col.name, col]
    }]
  end

  @primary_keys = Hash.new do |h, table_name|
    h[table_name] = table_exists?(table_name) ? connection.primary_key(table_name) : nil
  end
end