我们如何定义大整数?

时间:2011-06-15 02:44:57

标签: ruby-on-rails ruby heroku sqlite

  

可能重复:
  Integer out of range on Postgres DB

当我的代码尝试将诸如100001857905525之类的大数字插入到heroku的数据库中时,我收到错误:

ActiveRecord::StatementInvalid (PGError: ERROR:  integer out of range ) 

该列已定义为整数。我使用sqlite3数据库。我的代码已部署到heroku。

当我在localhost上运行时它工作正常。但是只有在heroku上运行代码时才会出现上述错误。 也许我可以通过将列定义为长整数或双精度来解决问题。我如何在Ruby / Rails中执行此操作?

1 个答案:

答案 0 :(得分:39)

在您的迁移中,您可以尝试这样做:

t.integer :uid, :limit => 8

将生成64位整数列。

(只有integer且未指定limit,根据PostgreSQL docs,最多允许10位数。)