WIP
This commit is contained in:
37
cookbook/migrations/0122_build_full_text_index.py
Normal file
37
cookbook/migrations/0122_build_full_text_index.py
Normal file
@ -0,0 +1,37 @@
|
||||
# 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
|
||||
),
|
||||
]
|
Reference in New Issue
Block a user