Class: ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord-mysql2-adapter-patch.rb

Instance Method Summary collapse

Instance Method Details

#new_column_from_field(table_name, field) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/activerecord-mysql2-adapter-patch.rb', line 7

def new_column_from_field(table_name, field)
   = (field[:Type], field[:Extra])
  default, default_function = field[:Default], nil

  if .type == :datetime && /\ACURRENT_TIMESTAMP(?:\([0-6]?\))?\z/i.match?(default)
    default, default_function = nil, default
    default_function += ' ' + field[:Extra] if field[:Extra] != ''
  elsif .extra == "DEFAULT_GENERATED"
    default = +"(#{default})" unless default.start_with?("(")
    default, default_function = nil, default
  end

  MySQL::Column.new(
    field[:Field],
    default,
    ,
    field[:Null] == "YES",
    default_function,
    collation: field[:Collation],
    comment: field[:Comment].presence
  )
end