Class: MultitenancyTools::DumpCleaner

Inherits:
Object
  • Object
show all
Defined in:
lib/multitenancy_tools/dump_cleaner.rb

Overview

This class receives an SQL string and removes statements that should not be present on dumps generated by SchemaDumper and TableDumper.

Instance Method Summary collapse

Constructor Details

#initialize(sql, schema_name = '') ⇒ DumpCleaner

Returns a new instance of DumpCleaner.

Parameters:

  • sql (String)


6
7
8
9
# File 'lib/multitenancy_tools/dump_cleaner.rb', line 6

def initialize(sql, schema_name = '')
  @schema_name = schema_name
  @sql = sql.dup
end

Instance Method Details

#cleanObject

Returns a new cleaned string.

Returns:

  • String



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/multitenancy_tools/dump_cleaner.rb', line 14

def clean
  @sql.gsub!(/CREATE SCHEMA .*;\n/, '')
  @sql.gsub!(/SET search_path .*;\n/, '')
  @sql.gsub!(/SET statement_timeout .*;\n/, '')
  @sql.gsub!(/SET lock_timeout .*;\n/, '')
  @sql.gsub!(/^--(?:.*)\n+/, '')
  @sql.gsub!(/\n+/, "\n")
  clean_schema_names!
  clean_catalog_overwrites!
  @sql
end