def type_map
length = Property::String.length
precision = Property::Numeric.precision
scale = Property::Decimal.scale
{
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