Skip to content
Snippets Groups Projects
Commit 05b034dd authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Add some (convering) indexes to speed up database queries

parent 7206d283
No related branches found
No related tags found
1 merge request!150Resolve "Django 3.2 database improvements"
Pipeline #6942 failed
# Generated by Django 3.2 on 2021-04-08 19:12
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('core', '0010_external_link_widget'),
('chronos', '0004_substitution_extra_lesson_year'),
]
operations = [
migrations.AlterModelOptions(
name='chronosglobalpermissions',
options={'managed': False, 'permissions': (('view_all_timetables', 'Can view all timetables'), ('view_timetable_overview', 'Can view timetable overview'), ('view_lessons_day', 'Can view all lessons per day'))},
),
migrations.AlterModelOptions(
name='lessonsubstitution',
options={'ordering': ['year', 'week', 'lesson_period__period__weekday', 'lesson_period__period__period'], 'verbose_name': 'Lesson substitution', 'verbose_name_plural': 'Lesson substitutions'},
),
migrations.RemoveIndex(
model_name='event',
name='chronos_eve_period__c7ec33_idx',
),
migrations.RemoveIndex(
model_name='lessonperiod',
name='chronos_les_lesson__05250e_idx',
),
migrations.AddIndex(
model_name='event',
index=models.Index(fields=['date_start', 'date_end'], include=('period_from', 'period_to'), name='event_date_start_date_end'),
),
migrations.AddIndex(
model_name='extralesson',
index=models.Index(fields=['week', 'year'], name='extra_lesson_week_year'),
),
migrations.AddIndex(
model_name='lessonperiod',
index=models.Index(fields=['lesson', 'period'], name='lesson_period_lesson_period'),
),
migrations.AddIndex(
model_name='lessonperiod',
index=models.Index(fields=['room'], include=('lesson', 'period'), name='lesson_period_room'),
),
migrations.AddIndex(
model_name='lessonsubstitution',
index=models.Index(fields=['week', 'year'], name='substitution_week_year'),
),
migrations.AddIndex(
model_name='lessonsubstitution',
index=models.Index(fields=['lesson_period'], name='substitution_lesson_period'),
),
migrations.AddIndex(
model_name='validityrange',
index=models.Index(fields=['date_start', 'date_end'], name='validity_date_start_date_end'),
),
]
......@@ -117,6 +117,9 @@ class ValidityRange(ExtensibleModel):
verbose_name = _("Validity range")
verbose_name_plural = _("Validity ranges")
unique_together = ["date_start", "date_end"]
indexes = [
models.Index(fields=["date_start", "date_end"], name="validity_date_start_date_end")
]
class TimePeriod(ValidityRangeRelatedExtensibleModel):
......@@ -425,6 +428,10 @@ class LessonSubstitution(ExtensibleModel, TeacherPropertiesMixin, WeekRelatedMix
name="either_substituted_or_cancelled",
)
]
indexes = [
models.Index(fields=["week", "year"], name="substitution_week_year"),
models.Index(fields=["lesson_period"], name="substitution_lesson_period"),
]
verbose_name = _("Lesson substitution")
verbose_name_plural = _("Lesson substitutions")
......@@ -531,7 +538,10 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
"period__period",
"lesson__subject",
]
indexes = [models.Index(fields=["lesson", "period"])]
indexes = [
models.Index(fields=["lesson", "period"], name="lesson_period_lesson_period"),
models.Index(fields=["room"], include=["lesson", "period"], name="lesson_period_room"),
]
verbose_name = _("Lesson period")
verbose_name_plural = _("Lesson periods")
......@@ -992,7 +1002,13 @@ class Event(SchoolTermRelatedExtensibleModel, GroupPropertiesMixin, TeacherPrope
class Meta:
ordering = ["date_start"]
indexes = [models.Index(fields=["period_from", "period_to", "date_start", "date_end"])]
indexes = [
models.Index(
fields=["date_start", "date_end"],
include=["period_from", "period_to"],
name="event_date_start_date_end",
)
]
verbose_name = _("Event")
verbose_name_plural = _("Events")
......@@ -1046,6 +1062,7 @@ class ExtraLesson(
class Meta:
verbose_name = _("Extra lesson")
verbose_name_plural = _("Extra lessons")
indexes = [models.Index(fields=["week", "year"], name="extra_lesson_week_year")]
class ChronosGlobalPermissions(GlobalPermissionModel):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment