Class: Gitlab::Database::Migrations::SwapColumnsDefault

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/database/migrations/swap_columns_default.rb

Instance Method Summary collapse

Constructor Details

#initialize(migration_context:, table:, column1:, column2:) ⇒ SwapColumnsDefault

Returns a new instance of SwapColumnsDefault.



12
13
14
15
16
17
# File 'lib/gitlab/database/migrations/swap_columns_default.rb', line 12

def initialize(migration_context:, table:, column1:, column2:)
  @migration_context = migration_context
  @table = table
  @column_name1 = column1
  @column_name2 = column2
end

Instance Method Details

#executeObject



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gitlab/database/migrations/swap_columns_default.rb', line 19

def execute
  default1 = find_default_by(@column_name1)
  default2 = find_default_by(@column_name2)
  return if default1 == default2

  change_sequence_owner_if(default1[:sequence_name], @column_name2)
  change_sequence_owner_if(default2[:sequence_name], @column_name1)

  change_column_default(@table, @column_name1, default2[:default])
  change_column_default(@table, @column_name2, default1[:default])
end