module DataMapper::Migrations::DataObjectsAdapter::ClassMethods

Public Instance Methods

type_map() click to toggle source

Default types for all data object based adapters.

@return [Hash] default types for data objects adapters.

@api private

# File lib/dm-migrations/adapters/dm-do-adapter.rb, line 260
def type_map
  length    = Property::String::DEFAULT_LENGTH
  precision = Property::Numeric::DEFAULT_PRECISION
  scale     = Property::Decimal::DEFAULT_SCALE

  @type_map ||= {
    Property::Binary => { :primitive => 'BLOB'                                              },
    Object           => { :primitive => 'TEXT'                                              },
    Integer          => { :primitive => 'INTEGER'                                           },
    String           => { :primitive => 'VARCHAR', :length => length                        },
    Class            => { :primitive => 'VARCHAR', :length => length                        },
    BigDecimal       => { :primitive => 'DECIMAL', :precision => precision, :scale => scale },
    Float            => { :primitive => 'FLOAT',   :precision => precision                  },
    DateTime         => { :primitive => 'TIMESTAMP'                                         },
    Date             => { :primitive => 'DATE'                                              },
    Time             => { :primitive => 'TIMESTAMP'                                         },
    TrueClass        => { :primitive => 'BOOLEAN'                                           },
    Property::Text   => { :primitive => 'TEXT'                                              },
  }.freeze
end