2011-08-25 38 views
6

estoy consiguiendo PGError: ERROR: integer out of range mensaje de tratar de insertar el siguiente número entero: 100001389928198./Postgres error: número entero fuera del rango

De acuerdo con la Postgres docs on numeric datatypes el límite es mucho mayor (9223372036854775807). Tengo la sensación de que Heroku está tratando la columna como un número entero regular en lugar de BIGINT.

que define la migración como un BIGINT como tal:

t.column :uid, :bigint 

es esto no es correcto en términos de migraciones heroku?

+0

wow eso es un número grande! ¿Para qué lo estás usando? – ardochhigh

+0

es un uid de Facebook (para oauth cosas) – neon

+0

Ya veo. Así que supongo que comenzaremos a usar estos campos int más grandes ahora. – ardochhigh

Respuesta

9

No estoy seguro de t.column es igual que change_column o no, pero aquí es cómo según API

change_column :table_name, :uid, :bigint 
+0

mi migración original fue como se indicó anteriormente, pero ejecutar esta hizo el truco. ¡Gracias! – neon

+0

esto funcionó para mí también ... sorprendente teniendo en cuenta que: bigint no aparece como uno de los tipos de columna en la guía de migraciones y que: limit => 8 pareció funcionar para mí en la página local .. –

+0

Hmm ... I intenté esto y obtuve el método de error undefined 'bigint 'para # Terminé haciendo t.integer: field,: limit => 8 en lugar de limitar el tamaño. – Lumbee

Cuestiones relacionadas