上下文:我已将项目从本地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。我觉得这里可能缺少一些非常简单的东西。