create indexes

This commit is contained in:
smilerz 2021-05-30 08:57:09 -05:00
parent 8c1cccb7a2
commit a956868eaf
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

@ -10,6 +10,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
@ -271,6 +272,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):
@ -302,6 +304,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):
@ -327,6 +330,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):
@ -361,7 +365,7 @@ class Step(ExportModelOperationsMixin('step'), models.Model, PermissionModelMixi
class Meta:
ordering = ['order', 'pk']
indexes = (GinIndex(fields=["search_vector"]),)
indexes = (GinIndex(fields=["search_vector"]), )
class NutritionInformation(models.Model, PermissionModelMixin):
@ -427,7 +431,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):
@ -477,6 +481,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)
@ -672,6 +679,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)
@ -684,6 +694,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)