TandoorRecipes/cookbook/migrations/0122_build_full_text_index.py
2021-07-29 16:38:24 -05:00

38 lines
1.3 KiB
Python

# Generated by Django 3.1.7 on 2021-04-07 20:00
from django.conf import settings
from django.contrib.postgres.indexes import GinIndex
from django.contrib.postgres.search import SearchVectorField, SearchVector
from django.db import migrations
from django_scopes import scopes_disabled
from cookbook.models import Recipe
def set_default_search_vector(apps, schema_editor):
if settings.DATABASES['default']['ENGINE'] not in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
return
with scopes_disabled():
search_vector = (
SearchVector('name__unaccent', weight='A')
+ SearchVector('description__unaccent', weight='B'))
Recipe.objects.all().update(search_vector=search_vector)
class Migration(migrations.Migration):
dependencies = [
('cookbook', '0121_auto_20210518_1638'),
]
operations = [
migrations.AddField(
model_name='recipe',
name='search_vector',
field=SearchVectorField(null=True),
),
migrations.AddIndex(
model_name='recipe',
index=GinIndex(fields=['search_vector'], name='cookbook_re_search__404e46_gin'),
),
migrations.RunPython(
set_default_search_vector
),
]