django postgresql 操作错误:索引行大小 xxx 超出最大值 yyy

5 投票
1 回答
1528 浏览
提问于 2025-04-18 02:35

我正在尝试学习一些Django,并且想通过模型表单往数据库里插入一些值,但这似乎失败了,错误信息是:

django.db.utils.OperationalError: index row size 3008 exceeds maximum 2712 for index "appname_mymodel_ggg_like"

我的模型非常简单,长得像这样:

class myModel(TimeStampedModel):

    fff =  models.URLField(db_index=False, blank=False,primary_key=False) 
    ggg = models.TextField(db_index=False, blank=False,primary_key=False)
    mj = models.BooleanField(db_index=False, blank=False, primary_key=False,  default=False) # req field

def __unicode__(self):
    return self.fff

这是不是意味着字符串太长了(是的,确实长,但也不是1MB那么大)?所以我才使用文本字段,但这似乎没有帮助。

如果有任何提示,我会很感激..

1 个回答

1

如果有人是通过错误信息来到这里的,对我来说,这个 未解决的bug就是问题所在。

简单来说,Django中的TextField可以很大,但如果我们还要求它的内容是唯一的,检查唯一性的过程可能会出问题。

有人建议的“解决办法”是使用md5哈希值来进行唯一性检查。

撰写回答