2012-07-02 41 views
10

Recibo un error integer out of range al intentar migrar mi base de datos de SQLite a PostgreSQL.Número entero fuera de rango

Creo que he identificado el problema: tengo algunos enteros enormes en un campo IntegerField en mi modelo.

Básicamente en el orden de 52675215334.

Cuando cambio de este valor a un número pequeño como 1 y luego tratar de migrar mi base de datos, todo está bien.

¿Hay algún otro tipo de datos que deba usar además de IntegerField para almacenar estos valores grandes?

+1

posible duplicado de [campo entero grande en modelos de Django] (http://stackoverflow.com/questions/283724/big-integer-field-in-django-models) – FogleBird

+1

Esos números son más grandes que puede caber en un int de 32 bits Pruebe "bigint" http://www.postgresql.org/docs/8.2/static/datatype-numeric.html –

+1

SQLite tiene más holgura que . –

Respuesta

17

Intente usar BigIntegerField si los números enteros son que grande. De la documentación:

un entero de 64 bits, al igual que un IntegerField excepto que se garantiza para adaptarse a números de -9223372036854775808 a 9223372036854775807. El administrador representa esto como una (entrada de una sola línea) <input type="text">.

+1

Gracias ... al final me di cuenta de que podía almacenar el valor como un CharField ya que solo se usa para anexar URL, pero esto también habría funcionado. – user1328021

Cuestiones relacionadas