Sha256: 48cd6fb50a7e6767e945faa36c420eb5609f1b04d06553290261471fef4c9b26
Contents?: true
Size: 1.64 KB
Versions: 21
Compression:
Stored size: 1.64 KB
Contents
require 'flydata/source/generate_source_dump' require 'flydata/preference/data_entry_preference' require 'flydata/source_mysql/mysql_compatibility_check' require 'flydata/source_mysql/parser/dump_parser' require 'flydata-core/mysql/binlog_pos' require 'flydata/source_mysql/sync_database_size_check' module Flydata module SourceMysql class GenerateSourceDump < Source::GenerateSourceDump def run_compatibility_check(dump_dir, backup_dir) %w(host username database).each do |k| if de['mysql_data_entry_preference'][k].to_s.empty? raise "'#{k}' is required. Set the value in the conf file " + "-> #{Flydata::Preference::DataEntryPreference.conf_path(de)}" end end MysqlCompatibilityCheck.new(dp, de['mysql_data_entry_preference'], dump_dir: dump_dir, backup_dir: backup_dir).check end def confirmation_items mp = de['mysql_data_entry_preference'] items = { "host" => mp['host'], "port" => mp['port'], "username" => mp['username'], "database" => mp['database'], } items["ssl"] = "Yes" if mp['ssl_ca'] items end def dump_size(tables) opts = de['mysql_data_entry_preference'].merge({"tables" => tables}) SyncDatabaseSizeCheck.new(opts).get_db_bytesize end def dump(tables, file_path = nil, &src_pos_callback) opts = de['mysql_data_entry_preference'].merge({"tables" => tables}) dump_generator = Parser::MysqlDumpGeneratorNoMasterData.new(opts) dump_generator.dump(file_path) do |io, binlog_hash| source_pos = FlydataCore::Mysql::BinlogPos.new(binlog_hash) src_pos_callback.call(io, source_pos) end nil end end end end
Version data entries
21 entries across 21 versions & 1 rubygems