BLOBの最大長
BLOB[(M))] 最大長65,535バイトのバイナリ
MEDIUMBLOB 最大長16,777,215バイトのバイナリ
LONGBLOB] 最大長4,294,967,295バイトあるいは4Gバイトのバイナリ
前に見かけて知ってたのに、すっかり忘れてた。BLOBだと64Kしか入らない。ちょっと大きなファイルをDBにしまおうとすると、64KBでぶった切られて入るので、ファイルとしては壊れてしまう。
def self.up if /mysql/i =~ adapter_name change_column(:uploaded_files, :data, "longblob") end end def self.down if /mysql/i =~ adapter_name change_column(:uploaded_files, :data, :binary) end end
っていうマイグレーションを書いて実行。うまく行きました。