2012-07-02 24 views
10

Viene visualizzato un errore integer out of range durante il tentativo di migrare il mio database da SQLite a PostgreSQL.Numero intero fuori intervallo

Penso di aver individuato il problema: ho alcuni numeri interi enormi in un campo IntegerField nel mio modello.

Fondamentalmente dell'ordine di 52675215334.

Quando cambio questo valore per un piccolo numero come 1 e quindi provare a migrare il mio database, tutto va bene.

C'è qualche altro tipo di dati che dovrei usare diverso da IntegerField per memorizzare questi grandi valori?

+1

possibile duplicato di [Grande campo integer in modelli Django] (http://stackoverflow.com/questions/283724/big-integer-field-in-django-models) – FogleBird

+1

Quei numeri sono più grandi di può andare bene in un int a 32 bit Prova "bigint" http://www.postgresql.org/docs/8.2/static/datatype-numeric.html –

+1

SQLite è più lento di . –

risposta

17

Provare a utilizzare BigIntegerField se i numeri interi sono quello grande. Dalla documentazione:

Un numero intero a 64 bit, molto simile a un IntegerField tranne che è garantito per adattarsi numeri da -9223372036854775808 a 9223372036854775807. L'amministratore rappresenta questo come (ingresso una linea singola) <input type="text">.

+1

Grazie ... alla fine mi sono reso conto che potevo effettivamente memorizzare il valore come un CharField dato che è usato solo per aggiungere gli URL, ma anche questo avrebbe funzionato. – user1328021

Problemi correlati