Method: ActiveRecord::ConnectionAdapters::TableDefinition#new_column_definition

Defined in:
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb

#new_column_definition(name, type, **options) ⇒ Object

:nodoc:



558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb', line 558

def new_column_definition(name, type, **options) # :nodoc:
  if integer_like_primary_key?(type, options)
    type = integer_like_primary_key_type(type, options)
  end
  type = aliased_types(type.to_s, type)

  if @conn.supports_datetime_with_precision?
    if type == :datetime && !options.key?(:precision)
      options[:precision] = 6
    end
  end

  options[:primary_key] ||= type == :primary_key
  options[:null] = false if options[:primary_key]
  create_column_definition(name, type, options)
end