gpt4 book ai didi

Django PostgreSQL JSONField db_index 错误

转载 作者:行者123 更新时间:2023-11-29 12:42:52 24 4
gpt4 key购买 nike

我的模型:

from django.db import models
from django.contrib.postgres.fields import JSONField

class MyModel(models.Model):
data = JSONField(blank=True, null=True)

我创建了一些对象并用一些 JSON 填充了“数据”字段

然后我尝试为“数据”字段创建索引

class MyModel(models.Model):
data = JSONField(blank=True, null=True, db_index=True)

进行迁移

python manage.py makemigrations

迁移

python manage.py migrate

长回溯,最后一行是:

django.db.utils.OperationalError: index row requires 8336 bytes, maximum size is 8191

我该如何解决?

最佳答案

this answer可以看出,这是 b 树索引的一个限制。对此没有简单的解决方案。索引整个 JSONField 也没有任何意义。您首先出于什么原因尝试索引 JSONField?

我的建议是删除此索引,因为我怀疑它是否必需。您可能希望尝试更复杂的索引,但 Django 内置的 db_index 无法做到这一点。您必须根据自己的情况创建更加自定义的方法。

关于Django PostgreSQL JSONField db_index 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185651/

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