gpt4 book ai didi

django - Django达到序列的最大值

转载 作者:行者123 更新时间:2023-12-02 07:16:38 25 4
gpt4 key购买 nike

我正在运行一个程序,它每天运行一次,每天创建数百万条记录,在运行了一年多之后,好像我已经达到了postgres数据库的id限制。

我收到的错误是

django.db.utils.DataError: nextval: reached maximum value of sequence "main_records_id_seq" (2147483647)



有没有一种方法可以使用SQL或Django ORM扩展最大ID?还是有更好的解决方案?

最佳答案

Django默认使用 AutoField [Django-doc]在数据库端指定主键的值。 AutoField IntegerField [Django-doc],正如Django文档所述:

An integer. Values from -2147483648 to 2147483647 are safe in all databases supported by Django.



您可以使用的是 BigAutoField [Django-doc],它将使用:

A 64-bit integer, much like an AutoField except that it is guaranteed to fit numbers from 1 to 9223372036854775807.



如果您的应用程序在一年内生成2'147'483'647,则可以使用 BigAutoField 4'294'967'298年。

因此,您可以将模型定义为:
class MyModel(models.Model):
id = models.BigAutoField(primary_key=True)

关于django - Django达到序列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61431283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com