型をt.binary
などとすると、デフォルトではBLOB
となってしまい、64KiBまでしか保存できなくなってしまいます。そこで:limit => 1.megabyte
とオプションで制限を大きめに書いてやると、Railsが勝手に拡張してMEDIUMBLOB
にしてくれます。
class CreateImages < ActiveRecord::Migration
def self.up
create_table :images do |t|
t.binary :data, :limit => 1.megabyte
t.integer :stat
t.timestamps
end
end
def self.down
drop_table :images
end
end
mysql> desc imags;
+----------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| data | mediumblob | YES | | NULL | |
| stat | int(11) | YES | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+----------------+------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
comments powered by Disqus