当我的代码尝试将诸如100001857905525
之类的大数字插入到heroku的数据库中时,我收到错误:
ActiveRecord::StatementInvalid (PGError: ERROR: integer out of range )
该列已定义为整数。我使用sqlite3数据库。我的代码已部署到heroku。
当我在localhost上运行时它工作正常。但是只有在heroku上运行代码时才会出现上述错误。 也许我可以通过将列定义为长整数或双精度来解决问题。我如何在Ruby / Rails中执行此操作?
答案 0 :(得分:39)
在您的迁移中,您可以尝试这样做:
t.integer :uid, :limit => 8
将生成64位整数列。
(只有integer
且未指定limit
,根据PostgreSQL docs,最多允许10位数。)