Class: Migsupo::Loader::ActiveRecordLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/migsupo/loader/active_record_loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(ignored_tables: []) ⇒ ActiveRecordLoader

Returns a new instance of ActiveRecordLoader.



9
10
11
# File 'lib/migsupo/loader/active_record_loader.rb', line 9

def initialize(ignored_tables: [])
  @ignored_tables = ignored_tables
end

Instance Method Details

#load_schemaObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/migsupo/loader/active_record_loader.rb', line 13

def load_schema
  tables = {}

  connection.tables.each do |table_name|
    next if @ignored_tables.include?(table_name)

    columns = load_columns(table_name)
    indexes = load_indexes(table_name)
    options = load_table_options(table_name)

    tables[table_name] = Schema::TableDefinition.new(
      name:    table_name,
      columns: columns,
      indexes: indexes,
      options: options
    )
  end

  Schema::SchemaDefinition.new(tables: tables)
end