2012-07-02 6 views
10

Я получаю ошибку integer out of range при попытке перенести мою базу данных из SQLite в PostgreSQL.Целое вне допустимого диапазона

Я думаю, что я определил проблему: у меня есть некоторые огромные целые числа в поле IntegerField в моей модели.

В основном по заказу 52675215334.

Когда я изменить это значение для небольшого числа, как 1, а затем попытаться перенести свою базу данных, все в порядке.

Есть ли другой тип данных, который я должен использовать, кроме IntegerField, для хранения этих больших значений?

+1

возможно дубликат [Большой целочисленного поля в моделях Джанго] (http://stackoverflow.com/questions/283724/big-integer-field-in-django-models) – FogleBird

+1

Эти цифры больше, чем может поместиться в 32-битный int. Попробуйте «bigint» http://www.postgresql.org/docs/8.2/static/datatype-numeric.html –

+1

SQLite имеет более слабую, чем . –

ответ

17

Попробуйте использовать BigIntegerField, если вы целые , что большой. Из документации:

64-битное целое, очень как IntegerField исключением того, что он гарантированно соответствовать номера от -9223372036854775808 к 9223372036854775807. админ представляет это как (ввода однострочного) <input type="text">.

+1

Спасибо ... в конце я понял, что могу хранить значение как CharField, поскольку он используется только для добавления к URL-адресам, но это тоже сработало бы. – user1328021