method
new_column_from_field
v6.1.3.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::MySQL::SchemaStatements
new_column_from_field(table_name, field)private
No documentation available.
# File activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb, line 161
def new_column_from_field(table_name, field)
type_metadata = fetch_type_metadata(field[:Type], field[:Extra])
default, default_function = field[:Default], nil
if type_metadata.type == :datetime && /\ACURRENT_TIMESTAMP(?:\([0-6]?\))?\z/.match?(default)
default, default_function = nil, default
elsif type_metadata.extra == "DEFAULT_GENERATED"
default = +"(#{default})" unless default.start_with?("(")
default, default_function = nil, default
end
MySQL::Column.new(
field[:Field],
default,
type_metadata,
field[:Null] == "YES",
default_function,
collation: field[:Collation],
comment: field[:Comment].presence
)
end