5
5
6
6
class ProjectDeletionTask (ModelDeletionTask ):
7
7
def get_child_relations (self , instance ):
8
- from sentry import models
9
8
from sentry .discover .models import DiscoverSavedQueryProject
10
9
from sentry .incidents .models .alert_rule import AlertRule
11
10
from sentry .incidents .models .incident import IncidentProject
11
+ from sentry .models .activity import Activity
12
+ from sentry .models .appconnectbuilds import AppConnectBuild
13
+ from sentry .models .artifactbundle import ProjectArtifactBundle
14
+ from sentry .models .debugfile import ProguardArtifactRelease , ProjectDebugFile
15
+ from sentry .models .environment import EnvironmentProject
16
+ from sentry .models .eventattachment import EventAttachment
17
+ from sentry .models .group import Group
18
+ from sentry .models .groupassignee import GroupAssignee
19
+ from sentry .models .groupbookmark import GroupBookmark
20
+ from sentry .models .groupemailthread import GroupEmailThread
21
+ from sentry .models .grouphash import GroupHash
22
+ from sentry .models .grouprelease import GroupRelease
23
+ from sentry .models .grouprulestatus import GroupRuleStatus
24
+ from sentry .models .groupseen import GroupSeen
25
+ from sentry .models .groupshare import GroupShare
26
+ from sentry .models .groupsubscription import GroupSubscription
27
+ from sentry .models .integrations .repository_project_path_config import (
28
+ RepositoryProjectPathConfig ,
29
+ )
30
+ from sentry .models .latestappconnectbuildscheck import LatestAppConnectBuildsCheck
31
+ from sentry .models .projectbookmark import ProjectBookmark
32
+ from sentry .models .projectcodeowners import ProjectCodeOwners
33
+ from sentry .models .projectkey import ProjectKey
12
34
from sentry .models .projectteam import ProjectTeam
35
+ from sentry .models .promptsactivity import PromptsActivity
36
+ from sentry .models .release_threshold import ReleaseThreshold
37
+ from sentry .models .releaseprojectenvironment import ReleaseProjectEnvironment
38
+ from sentry .models .releases .release_project import ReleaseProject
39
+ from sentry .models .servicehook import ServiceHook , ServiceHookProject
40
+ from sentry .models .transaction_threshold import ProjectTransactionThreshold
41
+ from sentry .models .userreport import UserReport
13
42
from sentry .monitors .models import Monitor
14
43
from sentry .replays .models import ReplayRecordingSegment
15
44
from sentry .snuba .models import QuerySubscription
16
45
17
46
relations = [
18
47
# ProjectKey gets revoked immediately, in bulk
19
- ModelRelation (models . ProjectKey , {"project_id" : instance .id })
48
+ ModelRelation (ProjectKey , {"project_id" : instance .id })
20
49
]
21
50
22
51
# in bulk
23
52
for m in (
24
- models . Activity ,
25
- models . AppConnectBuild ,
26
- models . EnvironmentProject ,
27
- models . GroupAssignee ,
28
- models . GroupBookmark ,
29
- models . GroupEmailThread ,
30
- models . GroupHash ,
31
- models . GroupRelease ,
32
- models . GroupRuleStatus ,
33
- models . GroupSeen ,
34
- models . GroupShare ,
35
- models . GroupSubscription ,
36
- models . LatestAppConnectBuildsCheck ,
37
- models . ProjectBookmark ,
38
- models . ProjectKey ,
39
- models . ReleaseThreshold ,
53
+ Activity ,
54
+ AppConnectBuild ,
55
+ EnvironmentProject ,
56
+ GroupAssignee ,
57
+ GroupBookmark ,
58
+ GroupEmailThread ,
59
+ GroupHash ,
60
+ GroupRelease ,
61
+ GroupRuleStatus ,
62
+ GroupSeen ,
63
+ GroupShare ,
64
+ GroupSubscription ,
65
+ LatestAppConnectBuildsCheck ,
66
+ ProjectBookmark ,
67
+ ProjectKey ,
68
+ ReleaseThreshold ,
40
69
ProjectTeam ,
41
- models . PromptsActivity ,
70
+ PromptsActivity ,
42
71
# order matters, ProjectCodeOwners to be deleted before RepositoryProjectPathConfig
43
- models . ProjectCodeOwners ,
72
+ ProjectCodeOwners ,
44
73
ReplayRecordingSegment ,
45
- models . RepositoryProjectPathConfig ,
46
- models . ServiceHookProject ,
47
- models . ServiceHook ,
48
- models . UserReport ,
49
- models . ProjectTransactionThreshold ,
74
+ RepositoryProjectPathConfig ,
75
+ ServiceHookProject ,
76
+ ServiceHook ,
77
+ UserReport ,
78
+ ProjectTransactionThreshold ,
50
79
# NOTE: Removing the project relation from `ProjectArtifactBundle` may
51
80
# leave behind orphaned `ArtifactBundle`s. Though thats not a big problem
52
81
# as those are being automatically cleaned up on their own.
53
- models . ProjectArtifactBundle ,
54
- models . ProguardArtifactRelease ,
82
+ ProjectArtifactBundle ,
83
+ ProguardArtifactRelease ,
55
84
DiscoverSavedQueryProject ,
56
85
IncidentProject ,
57
86
QuerySubscription ,
58
87
):
59
88
relations .append (ModelRelation (m , {"project_id" : instance .id }, BulkModelDeletionTask ))
60
89
relations .append (ModelRelation (Monitor , {"project_id" : instance .id }))
61
- relations .append (ModelRelation (models . Group , {"project_id" : instance .id }))
90
+ relations .append (ModelRelation (Group , {"project_id" : instance .id }))
62
91
relations .append (
63
92
ModelRelation (
64
93
AlertRule ,
@@ -69,10 +98,10 @@ def get_child_relations(self, instance):
69
98
# Release needs to handle deletes after Group is cleaned up as the foreign
70
99
# key is protected
71
100
for m in (
72
- models . ReleaseProject ,
73
- models . ReleaseProjectEnvironment ,
74
- models . EventAttachment ,
75
- models . ProjectDebugFile ,
101
+ ReleaseProject ,
102
+ ReleaseProjectEnvironment ,
103
+ EventAttachment ,
104
+ ProjectDebugFile ,
76
105
):
77
106
relations .append (ModelRelation (m , {"project_id" : instance .id }, ModelDeletionTask ))
78
107
return relations
0 commit comments