diff --git a/issues/migrations/0017_issue_list_indexes_must_start_with_project.py b/issues/migrations/0017_issue_list_indexes_must_start_with_project.py new file mode 100644 index 0000000..96133c5 --- /dev/null +++ b/issues/migrations/0017_issue_list_indexes_must_start_with_project.py @@ -0,0 +1,55 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("issues", "0016_alter_grouping_unique_together"), + ] + + operations = [ + migrations.RemoveIndex( + model_name="issue", + name="issues_issu_first_s_9fb0f9_idx", + ), + migrations.RemoveIndex( + model_name="issue", + name="issues_issu_last_se_400a05_idx", + ), + migrations.RemoveIndex( + model_name="issue", + name="issues_issu_is_reso_eaf32b_idx", + ), + migrations.RemoveIndex( + model_name="issue", + name="issues_issu_is_mute_6fe7fc_idx", + ), + migrations.RemoveIndex( + model_name="issue", + name="issues_issu_is_reso_0b6923_idx", + ), + migrations.AddIndex( + model_name="issue", + index=models.Index( + fields=["project", "is_resolved", "is_muted", "last_seen"], + name="issue_list_open", + ), + ), + migrations.AddIndex( + model_name="issue", + index=models.Index( + fields=["project", "is_muted", "last_seen"], name="issue_list_muted" + ), + ), + migrations.AddIndex( + model_name="issue", + index=models.Index( + fields=["project", "is_resolved", "last_seen"], + name="issue_list_resolved", + ), + ), + migrations.AddIndex( + model_name="issue", + index=models.Index(fields=["project", "last_seen"], name="issue_list_all"), + ), + ] diff --git a/issues/models.py b/issues/models.py index 6fdf3bf..8297129 100644 --- a/issues/models.py +++ b/issues/models.py @@ -176,13 +176,11 @@ class Issue(models.Model): ("project", "digest_order"), ] indexes = [ - models.Index(fields=["first_seen"]), - models.Index(fields=["last_seen"]), - - # 3 indexes for the list view (state_filter) - models.Index(fields=["is_resolved", "is_muted", "last_seen"]), # filter on resolved/muted - models.Index(fields=["is_muted", "last_seen"]), # filter on muted - models.Index(fields=["is_resolved", "last_seen"]), # filter on resolved + # 4 indexes for the list view (state_filter) + models.Index(fields=["project", "is_resolved", "is_muted", "last_seen"], name="issue_list_open"), + models.Index(fields=["project", "is_muted", "last_seen"], name="issue_list_muted"), + models.Index(fields=["project", "is_resolved", "last_seen"], name="issue_list_resolved"), # and unresolved + models.Index(fields=["project", "last_seen"], name="issue_list_all"), # all ]