File tree Expand file tree Collapse file tree 3 files changed +34
-14
lines changed Expand file tree Collapse file tree 3 files changed +34
-14
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ releases: 0002_delete_dual_written_commit_tables
3131
3232replays: 0006_add_bulk_delete_job
3333
34- sentry: 1002_group_history_prev_history_remove_db_constraint
34+ sentry: 1003_group_history_prev_history_safe_removal
3535
3636social_auth: 0003_social_auth_json_field
3737
Original file line number Diff line number Diff line change 1+ # Generated by Django 5.2.1 on 2025-11-04 15:18
2+
3+ from sentry .new_migrations .migrations import CheckedMigration
4+ from sentry .new_migrations .monkey .fields import SafeRemoveField
5+ from sentry .new_migrations .monkey .state import DeletionAction
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+ ("sentry" , "1002_group_history_prev_history_remove_db_constraint" ),
25+ ]
26+
27+ operations = [
28+ SafeRemoveField (
29+ model_name = "grouphistory" ,
30+ name = "prev_history" ,
31+ deletion_action = DeletionAction .MOVE_TO_PENDING ,
32+ ),
33+ ]
Original file line number Diff line number Diff line change @@ -212,19 +212,6 @@ class GroupHistory(Model):
212212 (GroupHistoryStatus .ESCALATING , _ ("Escalating" )),
213213 ),
214214 )
215- prev_history = FlexibleForeignKey (
216- "sentry.GroupHistory" ,
217- null = True ,
218- on_delete = models .SET_NULL ,
219- # By default, Django creates a database-level foreign key constraint when you define a ForeignKey field.
220- # This constraint enforces referential integrity at the database level, preventing you from:
221- # * Deleting a referenced record without handling the reference
222- # * Creating a reference to a non-existent record
223- # When you set db_constraint=False, Django skips creating this database constraint.
224- # The field still works as a ForeignKey in Python/Django (you can traverse relationships,
225- # use .select_related(), etc.), but the database won't enforce the relationship.
226- db_constraint = False ,
227- )
228215 prev_history_date = models .DateTimeField (
229216 null = True
230217 ) # This field is used to simplify query calculations.
You can’t perform that action at this time.
0 commit comments