【问题标题】:Integer out of range整数超出范围
【发布时间】:2022-02-11 19:27:07
【问题描述】:

我在尝试将我的数据库从 SQLite 迁移到 PostgreSQL 时收到 integer out of range 错误。

我想我已经查明了问题所在:我的模型中的 IntegerField 字段中有一些大整数。

基本上是52675215334的顺序。

当我将此值更改为 1 之类的小数字,然后尝试迁移我的数据库时,一切都很好。

除了 IntegerField 之外,我还应该使用其他数据类型来存储这些大值吗?

【问题讨论】:

标签: python django


【解决方案1】:

如果您的整数 很大,请尝试使用 BigIntegerField。来自文档:

一个 64 位整数,很像 IntegerField,除了它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。管理员将其表示为 <input type="text">(单行输入)。

【讨论】:

  • 谢谢...最后我意识到我实际上可以将值存储为 CharField,因为它仅用于附加到 URL,但这也可以。
  • 一百万年都不会猜到这一点...谢谢
【解决方案2】:

试试这个

models.IntegerField() 更改为 models.BigIntegerField()

class TableName(models.Model):
    ColumnName= models.BigIntegerField(default=0)

【讨论】:

    【解决方案3】:

    不要忘记迁移你所做的更改,否则将无法正常工作

    python manage.py migrate
    

    python manage.py makemigrations

    【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    相关资源
    最近更新 更多