Class: DataTaster::DatabaseOutput

Inherits:
Output
  • Object
show all
Defined in:
lib/data_taster/adapters/database_output.rb,
sig/data_taster.rbs

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Output

#export_mode, #initialize

Constructor Details

This class inherits a constructor from DataTaster::Output

Instance Attribute Details

#target_clientObject (readonly)

Returns the value of attribute target_client.

Returns:

  • (Object)


5
6
7
# File 'lib/data_taster/adapters/database_output.rb', line 5

def target_client
  @target_client
end

Instance Method Details

#default_dataObject



19
20
21
# File 'lib/data_taster/adapters/database_output.rb', line 19

def default_data
  { "schema_migrations" => "1 = 1" }
end

#import_table(collection, table_name) ⇒ void

This method returns an undefined value.

Parameters:



23
24
25
26
27
28
# File 'lib/data_taster/adapters/database_output.rb', line 23

def import_table(collection, table_name)
  payload = collection.assemble
  return write_drop_table(table_name) if payload.empty?

  export(collection, table_name, payload)
end

#qualified_table_name(table_name) ⇒ Object



34
35
36
# File 'lib/data_taster/adapters/database_output.rb', line 34

def qualified_table_name(table_name)
  "#{target_database}.#{table_name}"
end

#run_sanitization?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/data_taster/adapters/database_output.rb', line 15

def run_sanitization?
  true
end

#sample!Object



7
8
9
10
11
12
13
# File 'lib/data_taster/adapters/database_output.rb', line 7

def sample!
  source = DataTaster.config.source
  table_names(source).each do |table_name|
    collection = DataTaster::Collection.new(table_name)
    import_table(collection, table_name)
  end
end

#target_databaseObject



30
31
32
# File 'lib/data_taster/adapters/database_output.rb', line 30

def target_database
  target_client.query_options[:database]
end

#write_raw(line) ⇒ Object



42
43
44
# File 'lib/data_taster/adapters/database_output.rb', line 42

def write_raw(line)
  write_statement(line)
end

#write_statement(sql) ⇒ Object



38
39
40
# File 'lib/data_taster/adapters/database_output.rb', line 38

def write_statement(sql)
  safe_execute(sql)
end