Class: Migsupo::Differ::Operations::ChangeColumn

Inherits:
Object
  • Object
show all
Defined in:
lib/migsupo/differ/operations/change_column.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table_name:, new_column:, old_column:) ⇒ ChangeColumn

Returns a new instance of ChangeColumn.



7
8
9
10
11
12
# File 'lib/migsupo/differ/operations/change_column.rb', line 7

def initialize(table_name:, new_column:, old_column:)
  @table_name = table_name.to_s
  @new_column = new_column
  @old_column = old_column
  freeze
end

Instance Attribute Details

#new_columnObject (readonly)

Returns the value of attribute new_column.



5
6
7
# File 'lib/migsupo/differ/operations/change_column.rb', line 5

def new_column
  @new_column
end

#old_columnObject (readonly)

Returns the value of attribute old_column.



5
6
7
# File 'lib/migsupo/differ/operations/change_column.rb', line 5

def old_column
  @old_column
end

#table_nameObject (readonly)

Returns the value of attribute table_name.



5
6
7
# File 'lib/migsupo/differ/operations/change_column.rb', line 5

def table_name
  @table_name
end

Instance Method Details

#column_nameObject



14
15
16
# File 'lib/migsupo/differ/operations/change_column.rb', line 14

def column_name
  @new_column.name
end

#migration_typeObject



18
19
20
# File 'lib/migsupo/differ/operations/change_column.rb', line 18

def migration_type
  :change_column
end

#reversible?Boolean

change_column is irreversible in Rails unless we provide explicit up/down

Returns:

  • (Boolean)


23
24
25
# File 'lib/migsupo/differ/operations/change_column.rb', line 23

def reversible?
  false
end

#to_sObject



27
28
29
# File 'lib/migsupo/differ/operations/change_column.rb', line 27

def to_s
  "change_column #{table_name}.#{column_name} (#{old_column.type} -> #{new_column.type})"
end