Twitter のツイートを MySQL に格納するときに Data too long for column と出るとき

結論

ツイートの本文は VARCHAR(255) では収まらない(ときがある)ので、TEXT型 にする。

現象

こんなの。

Mysql2::Error (Data too long for column 'foobar' at row 1)

注意

  • TEXT型 は DEFAULT を持てないので注意です
  • TEXT型 に INDEX を張る場合は指定方法に注意です

おまけ

Rails(Active Record)のマイグレーションで DEFAULT を変更するためには change_column_default という専用のメソッドがあります*1。さらにちなみに NOT NULL を変更するためには change_column_null というメソッドがあります。

*1:DEFAULT を取り除きたい場合は default: nil を指定する

Powered by はてなブログ