RailsとDBの罠
DBにJPG画像を保存をしていたのですが、どうがんばってもオーバーデータになってしまう。
以前同じようなエラーメッセージで困った際にSQLの設定側で規制されていたことがあったのでそれをひたすら設定・・・しかし意味なし・・・
一時間程格闘した後、なんとblob型の制限は64Kbだそうで・・・
ちなみにそれぞれのサイズ限界はここに記載(オレメモ)
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s01.htm
そりゃああふれますよね・・・
mediumblobを使えば問題ないとわかったわけですが、Migrationの型とにらめっこしてもbinaryとしか記述できない・・・
結果
create_table :db_files, :force => true do |t| t.column :data, :binary, :limit => 1.megabyte end
これで解決。
容量を指定すると勝手にmediumblobにしてくれました。
無事1Mのファイルまでアップできるようになりましたとさ。
それはそうと、どの文献でもJPG等はローカルのディスクに保存する気がある。
そのせいでサンプルがすくなくて調べるのに時間かかったわけですが・・・
どう考えても投稿されるデータは データ層の扱いだからSQLに突っ込むのが正しいと思うんですけどねえ・・・
前にSquidとかのキャッシュサーバーかませば画像毎回読みにいくわけでもないし。
ローカルに画像を置いてると複数台で内容を共有するときはNFSとかでディスクをリンクしないといけなくなるし。バックアップが一元管理できないし、いろいろと不便・・・orz
と、思っていたらこんな記事があった。
http://neta.ywcafe.net/000774.html
やっぱそうだよね〜・・・