2011-08-25 16 views
6

のうち整数Iは、以下の整数を挿入しようとしているからPGError: ERROR: integer out of rangeメッセージ取得しています:100001389928198.Herokuの/ Postgresのエラー:範囲

Postgres docs on numeric datatypesによる制限がはるかに高い(9223372036854775807)を。私はHerokuがBIGINTではなく通常の整数として扱っていると感じています。

私のようなBIGINTとして移行を定義した:

t.column :uid, :bigint 

これはHerokuの移行の観点から正しくありませんか?

+0

に応じてワウそれは大きな数だかであることを確認していません!あなたはそれを何のために使っていますか? – ardochhigh

+0

そのfacebookのuid(oauthのもののため) – neon

+0

を参照してください。だから私は今、これらのより大きいintフィールドを使い始めると思います。 – ardochhigh

答えて

9

私はt.columnchange_columnかと同じであるが、ここでは、API

change_column :table_name, :uid, :bigint 
+0

私の元々の移行は上記の通りですが、これを実行することはそのトリックでした。ありがとう! – neon

+0

これは私にとってもうまくいきました。驚くべきことに、bigintはマイグレーションガイドの列タイプの1つとしてリストされておらず、limit => 8はローカルでpgで動作するようです。 –

+0

うーん...これを試して、#のための 'bigint 'というエラーを未定義にしました。サイズを制限する代わりに、t.integer:field、:limit => 8をやめました。 – Lumbee