Skip to content

Commit 38d363b

Browse files
authoredMar 20, 2025
chore(aci): add unique together constraint on DetectorWorkflow (#87464)
each detector-workflow pair should only have 1 connection
1 parent 9495a95 commit 38d363b

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed
 

‎migrations_lockfile.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ tempest: 0002_make_message_type_nullable
2525

2626
uptime: 0031_translate_uptime_object_headers_to_lists_take_three
2727

28-
workflow_engine: 0037_rm_workflow_name_unique_constraint
28+
workflow_engine: 0038_add_detector_workflow_unique_together
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Generated by Django 5.1.7 on 2025-03-19 23:14
2+
3+
from django.db import migrations
4+
5+
from sentry.new_migrations.migrations import CheckedMigration
6+
7+
8+
class Migration(CheckedMigration):
9+
# This flag is used to mark that a migration shouldn't be automatically run in production.
10+
# This should only be used for operations where it's safe to run the migration after your
11+
# code has deployed. So this should not be used for most operations that alter the schema
12+
# of a table.
13+
# Here are some things that make sense to mark as post deployment:
14+
# - Large data migrations. Typically we want these to be run manually so that they can be
15+
# monitored and not block the deploy for a long period of time while they run.
16+
# - Adding indexes to large tables. Since this can take a long time, we'd generally prefer to
17+
# run this outside deployments so that we don't block them. Note that while adding an index
18+
# is a schema change, it's completely safe to run the operation after the code has deployed.
19+
# Once deployed, run these manually via: https://develop.sentry.dev/database-migrations/#migration-deployment
20+
21+
is_post_deployment = False
22+
23+
dependencies = [
24+
("workflow_engine", "0037_rm_workflow_name_unique_constraint"),
25+
]
26+
27+
operations = [
28+
migrations.AlterUniqueTogether(
29+
name="detectorworkflow",
30+
unique_together={("detector", "workflow")},
31+
),
32+
]

‎src/sentry/workflow_engine/models/detector_workflow.py

+3
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,6 @@ class DetectorWorkflow(DefaultFieldsModel):
1414

1515
detector = FlexibleForeignKey("workflow_engine.Detector", on_delete=models.CASCADE)
1616
workflow = FlexibleForeignKey("workflow_engine.Workflow", on_delete=models.CASCADE)
17+
18+
class Meta:
19+
unique_together = (("detector", "workflow"),)

0 commit comments

Comments
 (0)
Please sign in to comment.