From da31c986df9f151417348432bb64ee62ad7fa403 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 16 Dec 2019 10:52:15 +0100 Subject: Gin index for data fields --- ishtar_common/models.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'ishtar_common/models.py') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 04ac2ef38..22b6cac33 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -52,6 +52,7 @@ from django.contrib.contenttypes.models import ContentType from django.contrib.gis.db import models from django.contrib.postgres.fields import JSONField from django.contrib.postgres.search import SearchVectorField, SearchVector +from django.contrib.postgres.indexes import GinIndex from django.contrib.sites.models import Site from django.core.cache import cache from django.core.exceptions import ObjectDoesNotExist, ValidationError, \ @@ -1370,7 +1371,7 @@ class JsonDataField(models.Model): class JsonData(models.Model, CachedGen): - data = JSONField(default={}, db_index=True, blank=True) + data = JSONField(default={}, blank=True) class Meta: abstract = True @@ -4129,6 +4130,9 @@ class Organization(Address, Merge, OwnPerms, ValueGetter, MainItem): ("change_own_organization", "Can change own Organization"), ("delete_own_organization", "Can delete own Organization"), ) + indexes = [ + GinIndex(fields=['data']), + ] def simple_lbl(self): if self.name: @@ -4299,6 +4303,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter, MainItem): class Meta: verbose_name = _("Person") verbose_name_plural = _("Persons") + indexes = [ + GinIndex(fields=['data']), + ] permissions = ( ("view_person", "Can view all Persons"), ("view_own_person", "Can view own Person"), @@ -5248,6 +5255,9 @@ class Document(BaseHistorizedItem, QRCodeItem, OwnPerms, ImageModel, ("delete_own_document", ugettext("Can delete own Document")), ) + indexes = [ + GinIndex(fields=['data']), + ] def __str__(self): return self.title -- cgit v1.2.3