LoginSignup
2
1

More than 5 years have passed since last update.

Rails(ActiveRecord)で ログテーブルなどのビッグデータ系のテーブルを作るときはbigint型にすることを忘れない

Posted at

Rails で、「rails g」でサクッと作っていると、
意識しないで作ってしまうのがIDカラム。

最近、integer型の桁あふれ問題(integer out of range)が発生して、ログ出力が900MB/日になるという問題が発生。

原因は、日々アクセスされた情報を記録するテーブルのIDカラムがintegerで作成されていた。
数年運営されて蓄積された情報の自動採番値がIDカラムに対して桁あふれエラーとなり、これまでinsertされ続けていた数だけエラーログとなって出力されて、膨大な量の出力を引き起こしていた。

rails g の前後で、テーブルの用途を考えて、migrationファイル内にID属性値の型をbigintにする?などの暗黙に作られる情報も含めた検討を忘れないようにすること。

2
1
1

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