while porting some parts of our java-based plattform to rails i
encounter some problems while using migrations and db:schema:dump. the
database schema uses several “double” column types which are not
supported natively in activerecord … as far as i know … and i
cannot change the database schema.
from some blogs i know that “t.float :mycolumn :limit => 53” results
in a generated column of type double.
this solved 50% of my problem, but running a “rake db:schema:dump”
ignores the “limit 53” which will generate an invalid schema on next
run of “rake db:schema:load”.
i think if found the relevant part in the mysql_adapter.rb to patch
this, but it would be great if some more experienced rails people
could confirm this.
regards
jan
*** mysql_adapter.orig.rb 2009-01-19 12:09:58.000000000 +0100
— mysql_adapter.rb 2009-01-19 11:59:18.000000000 +0100
*** 116,121 ****
— 116,122 ----
else
super # we could return 65535 here, but we leave it
undecorated by default
end
-
when /^double/i; 53 when /^bigint/i; 8 when /^int/i; 4 when /^mediumint/i; 3
*** 504,509 ****
— 505,511 ----
when 3; ‘mediumint’
when nil, 4, 11; ‘int(11)’ # compatibility with MySQL
default
when 5…8; ‘bigint’
-
when 53; 'double' else raise(ActiveRecordError, "No integer type has byte size
#{limit}")
end
end