forked from vmware-archive/atc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
63_cascade_pipeline_deletes.go
144 lines (122 loc) · 3.26 KB
/
63_cascade_pipeline_deletes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package migrations
import "github.com/concourse/atc/db/migration"
func CascadePipelineDeletes(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE build_events DROP CONSTRAINT build_events_build_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_events ADD CONSTRAINT build_events_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds (id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_outputs DROP CONSTRAINT build_outputs_build_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_outputs ADD CONSTRAINT build_outputs_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_outputs DROP CONSTRAINT build_outputs_versioned_resource_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_outputs ADD CONSTRAINT build_outputs_versioned_resource_id_fkey FOREIGN KEY (versioned_resource_id) REFERENCES versioned_resources(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_inputs DROP CONSTRAINT build_inputs_build_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_inputs ADD CONSTRAINT build_inputs_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_inputs DROP CONSTRAINT build_inputs_versioned_resource_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE build_inputs ADD CONSTRAINT build_inputs_versioned_resource_id_fkey FOREIGN KEY (versioned_resource_id) REFERENCES versioned_resources(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE jobs_serial_groups DROP CONSTRAINT fkey_job_id;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE jobs_serial_groups ADD CONSTRAINT fkey_job_id FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE builds DROP CONSTRAINT fkey_job_id;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE builds ADD CONSTRAINT fkey_job_id FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE versioned_resources DROP CONSTRAINT fkey_resource_id;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE versioned_resources ADD CONSTRAINT fkey_resource_id FOREIGN KEY (resource_id) REFERENCES resources(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE resources DROP CONSTRAINT resources_pipeline_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE resources ADD CONSTRAINT resources_pipeline_id_fkey FOREIGN KEY (pipeline_id) REFERENCES pipelines(id) ON DELETE CASCADE;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE jobs DROP CONSTRAINT jobs_pipeline_id_fkey;
`)
if err != nil {
return err
}
_, err = tx.Exec(`
ALTER TABLE jobs ADD CONSTRAINT jobs_pipeline_id_fkey FOREIGN KEY (pipeline_id) REFERENCES pipelines (id) ON DELETE CASCADE;
`)
return err
}