Friday, 08 December 2006
migration で blob の代わりに longblob を使わせる
migration で ↓ のように :binary を指定していたら、mysql では blob 型になっていた。
class Init < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.column :data, :binary
end
end
end
blob じゃなくて longblob を使いたいんだけど…。(blob は 64KB までしか入らない)
どうするのがスマートなのか解らないけど、結局 ↓ のようにして longblob になるようにした。
class Init < ActiveRecord::Migration
def self.up
case adapter_name
when "MySQL"
binary_type = "longblob"
else
binary_type = :binary
end
create_table :articles do |t|
t.column :data, binary_type
end
end
end
mysql でしか実行しないなら adapter_name を見る必要はないけど。
