2009年3月26日木曜日

rake migrate で longblob 型にする



MySQLで写真・画像などをファイル保存ではなくテーブルに保存する場合は、型をlongblobにしなければいけませんが、Railsのmigrateではlongblobは指定できません。
rake migrateでlongblobを指定する方法です。
(DDLから作成すれば問題ないですが・・・)


 def self.up
  create_table :xxxxx do |t|
   t.binary :photo
  end
  execute("alter table xxxxx change photo photo longblob");
 end



binaryを指定するとblob型になります。
blob型で作成し、executeでalter tableします。
何か気持ち悪い感じですね・・・

ちなみに一般的に利用する型も書いておきます。

string ⇒ varchar(255)
text ⇒ text
integer ⇒ int(11)
float ⇒ float
decimal ⇒ decimal(10,0)
datetime ⇒ datetime
timestamp ⇒ datetime
time ⇒ time
date ⇒ date
binary ⇒ blob
boolean ⇒ tinyint(1)

0 件のコメント: