django - Django DataError 索引超出 postrgresql 范围
问题描述
晚上好,
我意识到过去可能已经问过这个问题,但我收到以下错误
“psycopg2.errors.NumericValueOutOfRange:整数超出范围”和“django.db.utils.DataError:整数超出范围”
在 Django 中使用 postgresql 时。
对类似查询的其他回复似乎都表明我正在达到非常大的 id 或 pk。不是这种情况。我的数据库非常小,我只是想将对象保存到其中,而且我不可能达到 2^31-1 个 id。有些对象可以保存,有些则不会并引发错误。它似乎没有任何规律,令人愤怒。
直到最近我一直在使用 sqlite,我从来没有遇到过这个问题。
我是 postgresql 的新手,但数据库存在,已成功迁移,我可以看到 pgAdmin 中的字段。
该项目非常复杂,我无法在不发布大量代码的情况下提供最低限度的可重现示例,但我很乐意详细说明。
上述原因可能是什么?
根据要求,models.py 的一部分:
class Requirement(models.Model):
module = models.ForeignKey(Module, on_delete=models.CASCADE, null=False)
signups = models.ManyToManyField('Student', through='SignUp', blank=True)
etc.
class Student(models.Model):
first_name = models.CharField(max_length=50, null=False)
signups = models.ManyToManyField('Requirement', through='SignUp')
etc.
class Signup(models.Model):
requirement = models.ForeignKey(Requirement, on_delete=models.CASCADE, null=False)
student = models.ForeignKey(Student, on_delete=models.SET_NULL, null=True)
etc.
解决方案
如果您启用 django 日志记录:
LOGGING = {
# ...
'loggers': {
# ...
'django.db': {
'handlers': ['console'],
'level': 'DEBUG',
},
},
}
在 django 设置中,或查看数据库日志,您可能会找到导致错误的数字和字段。
推荐阅读
- android - appUpdateInfo.isUpdateTypeAllowed (AppUpdateType.IMMEDIATE) 在 Android In-App Update API 中的作用是什么?
- azure - 用户从本地连接到 Azure
- sql-server-2012 - sp_executesql 参数无法识别
- node.js - 节点 JS 会话代码无法在同一页面再次重定向
- python - 找到正确的 api 以在 bing websearch 包中使用
- azure-functions - 扩展运算符在 Azure 节点函数中不可用
- python-3.x - 如果我在 Python 3 环境中安装带有 pip 的包,该包是否保证与 Python 3 兼容?
- java - 如何通过一堂课
成哈希图? - java - 想要开发动态检查父 Web 元素中存在的子 Web 元素的 Java 逻辑
- python - 解决使用 pip install 时出现的无效语法错误