Fix: issue-list indexes must have project first

because we always filter by project before ordering;

the now-removed first_seen index was simply unused
This commit is contained in:
Klaas van Schelven
2025-05-06 22:19:31 +02:00
parent 699f6e587d
commit aad0f624f9
2 changed files with 60 additions and 7 deletions

View File

@@ -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"),
),
]

View File

@@ -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
]