LoginSignup
2
1

More than 5 years have passed since last update.

【Rails×MySQL】保存できる画像ファイルの容量を変更する

Last updated at Posted at 2018-04-18

RailsでDBをsqlite3からMySQLに変更したのち、今まで通り画像の登録を行おうとしたらData too long for column 'binary_data'と怒られました。

調べてみたところ、どうやらMySQLではBINARY型が無いため、自動でBLOB型に変換されるそうで、またそれと同時に最大量(lmit)も決めてくれていて、これが65535Byte(64KB)になっています。

そして今回登録しようとした画像ファイルの容量218KBは、上記の最大量63KBを超えていたためエラーとなりました。

これを回避するために、下記の記事を参考に最大量5MBに変更して対応してみました。

次のコードが実際に作成したマイグレーションファイルになります。

マイグレーションファイル.rb
class ChangeBinaryToImage < ActiveRecord::Migration[5.0]
  def change
    change_column :images, :binary_data, :binary, :limit => 5.megabyte
  end
end

こちらを適応させたのち、再び画像を登録して見るとうまく行きました!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1