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