Class: Convergence::Diff

Inherits:
Object
  • Object
show all
Defined in:
lib/convergence/diff.rb

Instance Method Summary collapse

Instance Method Details

#diff(from_database, to_database) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/convergence/diff.rb', line 4

def diff(from_database, to_database)
  delta = {}
  from_database = {} if from_database.nil?
  delta[:add_table] = scan_add_table(from_database, to_database)
  delta[:remove_table] = scan_remove_table(from_database, to_database)
  delta[:change_table] = scan_change_table(from_database, to_database)
  delta
end

#diff_table(from_table, to_table) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/convergence/diff.rb', line 13

def diff_table(from_table, to_table)
  from = from_table.dup
  to = to_table.dup
  delta = {}
  delta[:add_column] = scan_add_column(from, to)
  delta[:remove_column] = scan_remove_column(from, to)
  delta[:change_column] = scan_change_column(from, to)
  scan_change_order_column(from, to, delta)
  delta[:remove_index] = scan_change_index(to, from)
  delta[:add_index] = scan_change_index(from, to)
  delta[:remove_foreign_key] = scan_change_foreign_key(to, from)
  delta[:add_foreign_key] = scan_change_foreign_key(from, to)
  delta[:change_table_option] = scan_change_table_option(from, to)
  delta
end