class DbDumper::QueryBuilder

Generates queries for copying data

Attributes

config[R]

Public Class Methods

build(config, &block) click to toggle source
# File lib/db_dumper/query_builder.rb, line 9
def self.build(config, &block)
  establish_connection

  new(config).tap do |instance|
    instance.instance_eval(&block)
  end
end
new(config) click to toggle source
# File lib/db_dumper/query_builder.rb, line 54
def initialize(config)
  @config = config
end

Private Class Methods

establish_connection() click to toggle source

DSL end

# File lib/db_dumper/query_builder.rb, line 44
def self.establish_connection
  return if ActiveRecord::Base.connected?

  ActiveRecord::Migration.verbose = false
  ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
end

Public Instance Methods

copy(query) click to toggle source

add query to current dump

# File lib/db_dumper/query_builder.rb, line 33
def copy(query)
  queries << query
end
copy_commands() click to toggle source
# File lib/db_dumper/query_builder.rb, line 21
def copy_commands
  queries.map(&method(:build_copy_command))
end
dump(table_name) click to toggle source

Dump whole table to sql file

# File lib/db_dumper/query_builder.rb, line 28
def dump(table_name)
  dumping_tables << table_name
end
dumping_tables() click to toggle source
# File lib/db_dumper/query_builder.rb, line 17
def dumping_tables
  @dumping_tables ||= []
end
q(raw_table) click to toggle source

creates new query

# File lib/db_dumper/query_builder.rb, line 38
def q(raw_table)
  Query.new(raw_table)
end

Private Instance Methods

build_copy_command(query) click to toggle source
# File lib/db_dumper/query_builder.rb, line 62
def build_copy_command(query)
  config.db_utils.copy_data_command(query.to_sql, "#{copy_path}/#{query.table_name}.csv")
end
copy_path() click to toggle source
# File lib/db_dumper/query_builder.rb, line 66
def copy_path
  config.remote_machine.data_path
end
queries() click to toggle source
# File lib/db_dumper/query_builder.rb, line 58
def queries
  @queries ||= []
end