Class: Convergence::Dumper::MysqlSchemaDumper

Inherits:
Object
  • Object
show all
Defined in:
lib/convergence/dumper/mysql_schema_dumper.rb

Instance Method Summary collapse

Constructor Details

#initialize(connector) ⇒ MysqlSchemaDumper

Returns a new instance of MysqlSchemaDumper.



5
6
7
8
9
# File 'lib/convergence/dumper/mysql_schema_dumper.rb', line 5

def initialize(connector)
  @connector = connector
  @target_database = connector.config.database
  @tables = {}
end

Instance Method Details

#dumpObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/convergence/dumper/mysql_schema_dumper.rb', line 11

def dump
  table_definitions = select_table_definitions(@target_database)
  column_definitions = select_column_definitions(@target_database).group_by { |r| r['TABLE_NAME'] }
  index_definitions = select_index_definitions(@target_database).group_by { |r| r['TABLE_NAME'] }
  table_definitions.map { |r| r['TABLE_NAME'] }.each do |table_name|
    table = Convergence::Table.new(table_name)
    parse_table_options(table, table_definitions.find { |r| r['TABLE_NAME'] == table_name })
    parse_columns(table, column_definitions[table_name])
    parse_indexes(table, index_definitions[table_name])
    @tables[table_name] = table
  end
  @tables
end