Class: Gamma::Command::Dryrun

Inherits:
Gamma::Command show all
Defined in:
lib/gamma/command/dryrun.rb

Instance Method Summary collapse

Methods inherited from Gamma::Command

#gamma_tables, #logger, #output_setting_warning

Constructor Details

#initialize(opts) ⇒ Dryrun

Returns a new instance of Dryrun.



2
3
4
5
6
7
8
9
10
# File 'lib/gamma/command/dryrun.rb', line 2

def initialize(opts)
  @database_settings = Gamma::DatabaseSettings.new(opts[:settings])
  # TODO: support postgres adapter
  @in_client = Gamma::DatabaseConnector::MysqlConnector.new(@database_settings.in_database)
  @out_client = Gamma::DatabaseConnector::MysqlConnector.new(@database_settings.out_database)
  @hook_root_dir = opts[:hook_dir] || "."
  @syncdb = Gamma::SyncDatabase.new(opts[:sync_history] || "./history.json")
  @data_parser = Gamma::Parser::DataParser.new(opts[:data], @hook_root_dir, @in_client, @out_client, apply: false)
end

Instance Method Details

#executeObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gamma/command/dryrun.rb', line 12

def execute
  tables = @data_parser.gamma_tables
  output_setting_warning(tables)

  tables.each do |t|
    logger.info("[#{t.sync_mode}] Sync Start #{t.table_name}".green)

    case t.sync_mode
    when "replace"
      Gamma::Importer::Replace.new(@in_client, @out_client, t).execute
    else
      logger.info("[#{t.sync_mode}] Sync Failed #{t.table_name}. Unknown Sync mode".red)
    end
  end
end