Class: MysqlInspector::CLI::DiffCommand

Inherits:
Command
  • Object
show all
Includes:
Formatting
Defined in:
lib/mysql_inspector/cli.rb

Instance Attribute Summary

Attributes inherited from Command

#config, #status, #stderr, #stdout

Instance Method Summary collapse

Methods included from Formatting

#format_items

Methods inherited from Command

#get_dump, #initialize, #ivar, #parse!, #run!

Methods included from Helper

#abort, #exit, #puts, #usage

Constructor Details

This class inherits a constructor from MysqlInspector::CLI::Command

Instance Method Details

#parse(argv) ⇒ Object



228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'lib/mysql_inspector/cli.rb', line 228

def parse(argv)
  case argv.size
  when 0
    @version1 = CURRENT
    @version2 = TARGET
  when 1
    @version1 = CURRENT
    @version2 = argv.shift
  else
    @version1 = argv.shift
    @version2 = argv.shift
  end
end

#runObject



242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
# File 'lib/mysql_inspector/cli.rb', line 242

def run
  dump1 = get_dump(@version1)
  dump2 = get_dump(@version2)

  diff = Diff.new(dump1, dump2)
  diff.execute

  puts "diff #{@version1} #{@version2}"

  tables = diff.added_tables + diff.missing_tables + diff.different_tables

  if tables.any?
    puts
    tables.sort.each do |t|
      prefix = prefix_for_table(t, diff)
      puts "#{prefix} #{t.table_name}"
      if t.is_a?(Diff::TableDiff)
        format_diff_items("  COL", t.added_columns, t.missing_columns)
        format_diff_items("  IDX", t.added_indices, t.missing_indices)
        format_diff_items("  CST", t.added_constraints, t.missing_constraints)
      end
    end
    puts
  end
end