Module: AfterMigrate::Sql

Included in:
Mysql, Postgresql, Sqlite
Defined in:
lib/after_migrate/adapters/sql.rb

Constant Summary collapse

IDENT =
/
  (?:"[\w]+"|\w+)
  (?:\.(?:"[\w]+"|\w+))*
/x
PATTERNS =
{
  update: /update\s+(?:only\s+)?(#{IDENT})(?!\()/ix,
  insert: /insert\s+into\s+(#{IDENT})(?!\()/ix,
  delete: /delete\s+from\s+(#{IDENT})(?!\()/ix,
  drop_table: /drop\s+table\s+(?:if\s+exists\s+)?(#{IDENT})(?!\()/ix,
  alter_table: /alter\s+table\s+(#{IDENT})(?!\()/ix,
  create_table: /create\s+table\s+(?:if\s+not\s+exists\s+)?(#{IDENT})(?!\()/ix,
  from_join: /(?:from|join)\s+(#{IDENT})(?!\()/ix
}.freeze

Instance Method Summary collapse

Instance Method Details

#parse_tables(sql) ⇒ Object



20
21
22
# File 'lib/after_migrate/adapters/sql.rb', line 20

def parse_tables(sql)
  PATTERNS.flat_map { |_, r| sql.scan(r).flatten }.uniq
end