Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #283 from pixeltrix/fix-mediumtext-changing-to-lon…
…gtext

Backport of fix from rails/rails#5173
  • Loading branch information
brianmario committed Aug 4, 2012
2 parents 14accdf + 3105855 commit 8896689
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions lib/active_record/connection_adapters/mysql2_adapter.rb
Expand Up @@ -494,15 +494,26 @@ def rename_column(table_name, column_name, new_column_name)

# Maps logical Rails types to MySQL-specific data types.
def type_to_sql(type, limit = nil, precision = nil, scale = nil)
return super unless type.to_s == 'integer'

case limit
when 1; 'tinyint'
when 2; 'smallint'
when 3; 'mediumint'
when nil, 4, 11; 'int(11)' # compatibility with MySQL default
when 5..8; 'bigint'
else raise(ActiveRecordError, "No integer type has byte size #{limit}")
case type.to_s
when 'integer'
case limit
when 1; 'tinyint'
when 2; 'smallint'
when 3; 'mediumint'
when nil, 4, 11; 'int(11)' # compatibility with MySQL default
when 5..8; 'bigint'
else raise(ActiveRecordError, "No integer type has byte size #{limit}")
end
when 'text'
case limit
when 0..0xff; 'tinytext'
when nil, 0x100..0xffff; 'text'
when 0x10000..0xffffff; 'mediumtext'
when 0x1000000..0xffffffff; 'longtext'
else raise(ActiveRecordError, "No text type has character length #{limit}")
end
else
super
end
end

Expand Down

0 comments on commit 8896689

Please sign in to comment.