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

Version Path
flydata-0.8.10.2 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.10.1 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.9.11 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.10 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.9 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.8 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.7 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.6 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.5 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.4 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.3 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.2 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.1 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.8.0 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.19 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.18 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.17 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.16 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.15 lib/flydata/source_mysql/generate_source_dump.rb
flydata-0.7.14 lib/flydata/source_mysql/generate_source_dump.rb