Module: Lincoln::ChangeTableOptimization

Defined in:
lib/lincoln/mysql_adapter.rb

Instance Method Summary collapse

Instance Method Details

#add_column(table_name, column_name, type, options = {}) ⇒ Object



28
29
30
31
# File 'lib/lincoln/mysql_adapter.rb', line 28

def add_column(table_name, column_name, type, options = {})
  track("add", column_name)
  super
end

#change_table(table_name) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/lincoln/mysql_adapter.rb', line 14

def change_table(table_name)
  @table_name = table_name
  @new_table_name = generate_table_name(table_name)
  copy_table_structure(table_name, @new_table_name)
  
  super(@new_table_name)
  
  copy_data(table_name, @new_table_name)
  swap_tables(@new_table_name, table_name)
  
  @table_name = nil
  @new_table_name = nil
end

#index_name(table_name, options) ⇒ Object



43
44
45
46
47
48
# File 'lib/lincoln/mysql_adapter.rb', line 43

def index_name(table_name, options)
  if @table_name != nil
    return super(@table_name, options)
  end
  super(table_name, options)
end

#remove_column(table_name, *column_names) ⇒ Object



33
34
35
36
# File 'lib/lincoln/mysql_adapter.rb', line 33

def remove_column(table_name, *column_names)
  column_names.each { |c| track("remove", c) }
  super
end

#rename_column_with_tracking(table_name, column_name, new_column_name) ⇒ Object



38
39
40
41
# File 'lib/lincoln/mysql_adapter.rb', line 38

def rename_column_with_tracking(table_name, column_name, new_column_name)
  track("rename", [column_name, new_column_name])
  rename_column_without_tracking(table_name, column_name, new_column_name)
end