From 1ad9bfcb06aec3678c345fd97103f2c73396cd44 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Mon, 28 Nov 2022 21:47:31 -0700 Subject: Add GIN index to Post.hashtags --- activities/migrations/0002_hashtag.py | 7 +++++++ activities/models/post.py | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/activities/migrations/0002_hashtag.py b/activities/migrations/0002_hashtag.py index 468bd95..c1b4bbd 100644 --- a/activities/migrations/0002_hashtag.py +++ b/activities/migrations/0002_hashtag.py @@ -1,5 +1,6 @@ # Generated by Django 4.1.3 on 2022-11-27 20:16 +import django.contrib.postgres.indexes from django.db import migrations, models import activities.models.hashtag @@ -48,4 +49,10 @@ class Migration(migrations.Migration): "abstract": False, }, ), + migrations.AddIndex( + model_name="post", + index=django.contrib.postgres.indexes.GinIndex( + fields=["hashtags"], name="hashtags_gin" + ), + ), ] diff --git a/activities/models/post.py b/activities/models/post.py index b61abd4..f3b1879 100644 --- a/activities/models/post.py +++ b/activities/models/post.py @@ -4,6 +4,7 @@ from typing import Dict, Iterable, Optional, Set import httpx import urlman from asgiref.sync import sync_to_async +from django.contrib.postgres.indexes import GinIndex from django.db import models, transaction from django.template.defaultfilters import linebreaks_filter from django.utils import timezone @@ -187,6 +188,11 @@ class Post(StatorModel): objects = PostManager() + class Meta: + indexes = [ + GinIndex(fields=["hashtags"], name="hashtags_gin"), + ] + class urls(urlman.Urls): view = "{self.author.urls.view}posts/{self.id}/" object_uri = "{self.author.actor_uri}posts/{self.id}/" -- cgit v1.2.3