Django IntegerField в PostgreSQL получает ошибку «переполнение числового поля» на 1000 - PullRequest
0 голосов
/ 05 марта 2019

Контекст: я переместил свой проект из локальной базы данных SQLite в базу данных AWS RDS PostgreSQL.Это была пустая база данных, поэтому миграция прошла успешно, но теперь, когда я тестирую фактическое сохранение данных, я получаю сообщение об ошибке на IntegerField.

models.py

class Item(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField(null=True, blank=True)
    amount = models.IntegerField(default=0)

test.py

testItem = Item(name="Test item valued at 1000")
testItem.description = "please delete"
testItem.amount = 1000
testItem.save()

И вот, я получаю эту ошибку:

numeric field overflow
DETAIL:  A field with precision 5, scale 2 must round to an absolute value less than 10^3.

Ошибка довольно очевидна, я немного ее набираю и все нормально.Но у меня сложилось впечатление, что IntegerFields может доходить до 2147483647. Я понятия не имею, почему с целым числом связаны точность и масштаб.Я просто не совсем уверен, что происходит, моя база данных считает, что это десятичное число?Я запустил новую миграцию, которая прошла без проблем, и поле ранее никогда не было DecimalField.Я чувствую, что, возможно, мне здесь не хватает чего-то очень простого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...