From fc2ae2196bad68f760d521aa1119daa028550833 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:25:58 +0000 Subject: [PATCH 1/2] feat(grouprulestatus): Add index to date_added field --- ...0996_add_grouprulestatus_date_added_idx.py | 34 +++++++++++++++++++ src/sentry/models/grouprulestatus.py | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py diff --git a/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py b/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py new file mode 100644 index 00000000000000..6c4c0801402e00 --- /dev/null +++ b/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py @@ -0,0 +1,34 @@ +# Generated by Django 5.2.1 on 2025-01-15 00:00 + +import django.utils.timezone +from django.db import migrations, models + +from sentry.new_migrations.migrations import CheckedMigration + + +class Migration(CheckedMigration): + # This flag is used to mark that a migration shouldn't be automatically run in production. + # This should only be used for operations where it's safe to run the migration after your + # code has deployed. So this should not be used for most operations that alter the schema + # of a table. + # Here are some things that make sense to mark as post deployment: + # - Large data migrations. Typically we want these to be run manually so that they can be + # monitored and not block the deploy for a long period of time while they run. + # - Adding indexes to large tables. Since this can take a long time, we'd generally prefer to + # run this outside deployments so that we don't block them. Note that while adding an index + # is a schema change, it's completely safe to run the operation after the code has deployed. + # Once deployed, run these manually via: https://develop.sentry.dev/database-migrations/#migration-deployment + + is_post_deployment = True + + dependencies = [ + ("sentry", "0995_add_date_updated_to_grouphash_metadata"), + ] + + operations = [ + migrations.AlterField( + model_name="grouprulestatus", + name="date_added", + field=models.DateTimeField(db_index=True, default=django.utils.timezone.now), + ), + ] \ No newline at end of file diff --git a/src/sentry/models/grouprulestatus.py b/src/sentry/models/grouprulestatus.py index 069bbdf6898702..2c3d77c8f6e933 100644 --- a/src/sentry/models/grouprulestatus.py +++ b/src/sentry/models/grouprulestatus.py @@ -16,7 +16,7 @@ class GroupRuleStatus(Model): rule = FlexibleForeignKey("sentry.Rule") group = FlexibleForeignKey("sentry.Group") status = models.PositiveSmallIntegerField(default=ACTIVE) - date_added = models.DateTimeField(default=timezone.now) + date_added = models.DateTimeField(default=timezone.now, db_index=True) last_active = models.DateTimeField(null=True) class Meta: From ce107403e465d3f9fbcca36d16bbe818bd09ed08 Mon Sep 17 00:00:00 2001 From: "getsantry[bot]" <66042841+getsantry[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:27:01 +0000 Subject: [PATCH 2/2] :hammer_and_wrench: apply pre-commit fixes --- .../migrations/0996_add_grouprulestatus_date_added_idx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py b/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py index 6c4c0801402e00..a6c775908839f9 100644 --- a/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py +++ b/src/sentry/migrations/0996_add_grouprulestatus_date_added_idx.py @@ -31,4 +31,4 @@ class Migration(CheckedMigration): name="date_added", field=models.DateTimeField(db_index=True, default=django.utils.timezone.now), ), - ] \ No newline at end of file + ]