create indexes

This commit is contained in:
smilerz
2021-05-30 08:57:09 -05:00
parent 48f5642e04
commit f0e56863c5
2 changed files with 44 additions and 3 deletions

View File

@ -6,7 +6,7 @@ from django.db import migrations
from django_scopes import scopes_disabled
from django.utils import translation
from cookbook.managers import DICTIONARY
from cookbook.models import Recipe, Step
from cookbook.models import Recipe, Step, Index
@ -52,6 +52,34 @@ class Migration(migrations.Migration):
model_name='step',
index=GinIndex(fields=['search_vector'], name='cookbook_st_search__2ef7fa_gin'),
),
migrations.AddIndex(
model_name='cooklog',
index=Index(fields=['id', 'recipe', '-created_at', 'rating'], name='cookbook_co_id_37485a_idx'),
),
migrations.AddIndex(
model_name='food',
index=Index(fields=['id', 'name'], name='cookbook_fo_id_22b733_idx'),
),
migrations.AddIndex(
model_name='ingredient',
index=Index(fields=['id', 'food', 'unit'], name='cookbook_in_id_3368be_idx'),
),
migrations.AddIndex(
model_name='keyword',
index=Index(fields=['id', 'name'], name='cookbook_ke_id_ebc03f_idx'),
),
migrations.AddIndex(
model_name='recipe',
index=Index(fields=['id', 'name', 'description'], name='cookbook_re_id_e4c2d4_idx'),
),
migrations.AddIndex(
model_name='recipebook',
index=Index(fields=['name', 'description'], name='cookbook_re_name_bbe446_idx'),
),
migrations.AddIndex(
model_name='viewlog',
index=Index(fields=['recipe', '-created_at'], name='cookbook_vi_recipe__5cd178_idx'),
),
migrations.RunPython(
set_default_search_vector
),

View File

@ -12,6 +12,7 @@ from django.contrib.postgres.indexes import GinIndex
from django.contrib.postgres.search import SearchVectorField
from django.core.validators import MinLengthValidator
from django.db import models
from django.db.models import Index
from django.utils import timezone
from django.utils.translation import gettext as _
from django_prometheus.models import ExportModelOperationsMixin
@ -278,6 +279,7 @@ class Keyword(ExportModelOperationsMixin('keyword'), models.Model, PermissionMod
class Meta:
unique_together = (('space', 'name'),)
indexes = (Index(fields=['id', 'name']), )
class Unit(ExportModelOperationsMixin('unit'), models.Model, PermissionModelMixin):
@ -309,6 +311,7 @@ class Food(ExportModelOperationsMixin('food'), models.Model, PermissionModelMixi
class Meta:
unique_together = (('space', 'name'),)
indexes = (Index(fields=['id', 'name']), )
class Ingredient(ExportModelOperationsMixin('ingredient'), models.Model, PermissionModelMixin):
@ -328,6 +331,7 @@ class Ingredient(ExportModelOperationsMixin('ingredient'), models.Model, Permiss
class Meta:
ordering = ['order', 'pk']
indexes = (Index(fields=['id', 'food', 'unit']), )
class Step(ExportModelOperationsMixin('step'), models.Model, PermissionModelMixin):
@ -419,7 +423,7 @@ class Recipe(models.Model, PermissionModelMixin):
return self.name
class Meta():
indexes = (GinIndex(fields=["name_search_vector", "desc_search_vector"]),)
indexes = (GinIndex(fields=["name_search_vector", "desc_search_vector"]), Index(fields=['id', 'name', 'description']), )
class Comment(ExportModelOperationsMixin('comment'), models.Model, PermissionModelMixin):
@ -469,6 +473,9 @@ class RecipeBook(ExportModelOperationsMixin('book'), models.Model, PermissionMod
def __str__(self):
return self.name
class Meta():
indexes = (Index(fields=['name', 'description']), )
class RecipeBookEntry(ExportModelOperationsMixin('book_entry'), models.Model, PermissionModelMixin):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
@ -665,6 +672,9 @@ class CookLog(ExportModelOperationsMixin('cook_log'), models.Model, PermissionMo
def __str__(self):
return self.recipe.name
class Meta():
indexes = (Index(fields=['id', 'recipe', '-created_at', 'rating']), )
class ViewLog(ExportModelOperationsMixin('view_log'), models.Model, PermissionModelMixin):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
@ -677,6 +687,9 @@ class ViewLog(ExportModelOperationsMixin('view_log'), models.Model, PermissionMo
def __str__(self):
return self.recipe.name
class Meta():
indexes = (Index(fields=['recipe', '-created_at']), )
class ImportLog(models.Model, PermissionModelMixin):
type = models.CharField(max_length=32)