method

new_column_from_field

Importance_0
v7.0.0 - Show latest stable - 0 notes - Class: SchemaStatements
new_column_from_field(table_name, field) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
            elsif type_metadata.type == :text && default
              # strip and unescape quotes
              default = default[1...-1].gsub("\\'", "'")
            end

            MySQL::Column.new(
              field[:Field],
              default,
              type_metadata,
              field[:Null] == "YES",
              default_function,
              collation: field[:Collation],
              comment: field[:Comment].presence
            )
          end
Register or log in to add new notes.