django postgresql 操作错误:索引行大小 xxx 超出最大值 yyy
我正在尝试学习一些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哈希值来进行唯一性检查。