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 |