Class: Convergence::Dumper::SqliteSchemaDumper

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

Constant Summary collapse

DEFAULT_VALUE_PATTERN =
/\A'(?<value>(?:[^']|'')*)'\z/.freeze
FOREIGN_KEY_NAME_PATTERN =

SQLite has no CONSTRAINT-name introspection pragma; the name is only preserved in the original CREATE TABLE text.

/CONSTRAINT\s+"?(?<name>\w+)"?\s+FOREIGN KEY\s*\(\s*"?(?<column>\w+)"?\s*\)/i.freeze

Instance Method Summary collapse

Constructor Details

#initialize(connector) ⇒ SqliteSchemaDumper

Returns a new instance of SqliteSchemaDumper.



10
11
12
13
# File 'lib/convergence/dumper/sqlite_schema_dumper.rb', line 10

def initialize(connector)
  @connector = connector
  @tables = {}
end

Instance Method Details

#dumpObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/convergence/dumper/sqlite_schema_dumper.rb', line 15

def dump
  table_names.each do |table_name|
    table = Convergence::Table.new(table_name)
    parse_columns(table, column_definitions(table_name))
    parse_indexes(table, index_definitions(table_name))
    parse_foreign_keys(table, table_name)
    @tables[table_name] = table
  end
  @tables
end