Ruby on rails 我们如何定义大整数?

Ruby on rails 我们如何定义大整数?,ruby-on-rails,ruby,heroku,sqlite,Ruby On Rails,Ruby,Heroku,Sqlite,可能重复: 当我的代码试图将诸如100001857905525之类的大数字插入heroku上的数据库时,我会得到以下错误: ActiveRecord::StatementInvalid (PGError: ERROR: integer out of range ) 该列已定义为整数。我使用sqlite3数据库。我的代码被部署到heroku 当我在本地主机上运行时,它工作正常。但我只有在heroku上运行代码时才会出现上述错误。 也许我可以通过将列定义为长整数或双精度来解决这个问题。如何在

可能重复:

当我的代码试图将诸如
100001857905525
之类的大数字插入heroku上的数据库时,我会得到以下错误:

ActiveRecord::StatementInvalid (PGError: ERROR:  integer out of range ) 
该列已定义为整数。我使用sqlite3数据库。我的代码被部署到heroku

当我在本地主机上运行时,它工作正常。但我只有在heroku上运行代码时才会出现上述错误。
也许我可以通过将列定义为长整数或双精度来解决这个问题。如何在Ruby/Rails中实现这一点?

在迁移过程中,您可以尝试以下方法:

t.integer :uid, :limit => 8
它将生成一个64位整数列


(只需
integer
不指定
限制,根据,最多允许10位。)

这个问题已经在这里被提出并得到了回答,SQLite非常宽容(即所有文本都是文本,所以字符串大小没有限制,从它们的大小来看,似乎整数可以根据需要增长到8位),但是PostgreSQL(Heroku使用了什么)是为性能而优化的,因此您必须找到正确的类型。这是一种微妙的方式,可以引入在开发中工作但在生产中不工作的代码。工作起来很有魅力。ThanksDefault列的值设置为8位以上的数字,但仍然可以工作,这是一种为列设置bigint的奇怪方式!!更多信息请参阅可用于:我很好奇默认值是什么。根据,max
integer
是2147483647(10位),max
bigint
是9223372036854775807(19位)。decimal
类型允许小数点前最多131072位!