Sha256: bdcf06da6d53f7b776d9ec8f37d858ddbec41858d60f39a3a5e4e25ac93b61cb
Contents?: true
Size: 1.59 KB
Versions: 24
Compression:
Stored size: 1.59 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' 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}) Parser::DatabaseSizeCheck.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
24 entries across 24 versions & 1 rubygems