Last active 1719816616

rootspring's Avatar rootspring revised this gist 1719816616. Go to revision

1 file changed, 76 insertions

migrate.go(file created)

@@ -0,0 +1,76 @@
1 + func ApplyMigrations() {
2 + /*
3 + webhooks.created_by TEXT NOT NULL [set unfilled to '']
4 + webhooks.last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
5 + webhooks.last_updated_by TEXT NOT NULL [set unfilled to '']
6 +
7 + repos.created_by TEXT NOT NULL [set unfilled to '']
8 + repos.last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
9 + repos.last_updated_by TEXT NOT NULL [set unfilled to '']
10 +
11 + event_modifiers.created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
12 + event_modifiers.created_by TEXT NOT NULL [set unfilled to '']
13 + event_modifiers.last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
14 + event_modifiers.last_updated_by TEXT NOT NULL [set unfilled to '']
15 +
16 + webhook_logs.webhook_id text not null references webhooks (id) ON UPDATE CASCADE ON DELETE CASCADE [drop all if webhook_id unset]
17 + webhook_logs.created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
18 + webhook_logs.created_by TEXT NOT NULL [set unfilled to '']
19 + webhook_logs.last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
20 + webhook_logs.last_updated_by TEXT NOT NULL [set unfilled to '']
21 + */
22 +
23 + tx, err := Pool.Begin(Context)
24 +
25 + if err != nil {
26 + Logger.Fatal("Could not start migration transaction", zap.Error(err))
27 + }
28 +
29 + defer tx.Rollback(Context)
30 +
31 + var countOfWebhookId int64
32 + err = tx.QueryRow(Context, "SELECT COUNT(*) FROM information_schema.columns WHERE table_name = 'webhook_logs' AND column_name = 'webhook_id'").Scan(&countOfWebhookId)
33 +
34 + if err != nil {
35 + Logger.Fatal("Could not check for webhook_id column", zap.Error(err))
36 + }
37 +
38 + if countOfWebhookId == 0 {
39 + _, err = tx.Exec(Context, `
40 + DELETE FROM webhook_logs
41 + `)
42 +
43 + if err != nil {
44 + Logger.Fatal("Could not delete webhook_logs", zap.Error(err))
45 + }
46 + }
47 +
48 + _, err = tx.Exec(Context, `
49 + ALTER TABLE webhooks ADD COLUMN IF NOT EXISTS created_by TEXT NOT NULL DEFAULT '';
50 + ALTER TABLE webhooks ALTER COLUMN created_by DROP DEFAULT;
51 + ALTER TABLE webhooks ADD COLUMN IF NOT EXISTS last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
52 + ALTER TABLE webhooks ADD COLUMN IF NOT EXISTS last_updated_by TEXT NOT NULL DEFAULT '';
53 + ALTER TABLE webhooks ALTER COLUMN last_updated_by DROP DEFAULT;
54 +
55 + ALTER TABLE repos ADD COLUMN IF NOT EXISTS created_by TEXT NOT NULL DEFAULT '';
56 + ALTER TABLE repos ALTER COLUMN created_by DROP DEFAULT;
57 + ALTER TABLE repos ADD COLUMN IF NOT EXISTS last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
58 + ALTER TABLE repos ADD COLUMN IF NOT EXISTS last_updated_by TEXT NOT NULL DEFAULT '';
59 + ALTER TABLE repos ALTER COLUMN last_updated_by DROP DEFAULT;
60 +
61 + ALTER TABLE event_modifiers ADD COLUMN IF NOT EXISTS created_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
62 + ALTER TABLE event_modifiers ADD COLUMN IF NOT EXISTS created_by TEXT NOT NULL DEFAULT '';
63 + ALTER TABLE event_modifiers ALTER COLUMN created_by DROP DEFAULT;
64 + ALTER TABLE event_modifiers ADD COLUMN IF NOT EXISTS last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
65 + ALTER TABLE event_modifiers ADD COLUMN IF NOT EXISTS last_updated_by TEXT NOT NULL DEFAULT '';
66 + ALTER TABLE event_modifiers ALTER COLUMN last_updated_by DROP DEFAULT;
67 +
68 + ALTER TABLE webhook_logs ADD COLUMN IF NOT EXISTS webhook_id TEXT NOT NULL REFERENCES webhooks (id) ON UPDATE CASCADE ON DELETE CASCADE;
69 + ALTER TABLE webhook_logs ADD COLUMN IF NOT EXISTS created_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
70 + ALTER TABLE webhook_logs ADD COLUMN IF NOT EXISTS created_by TEXT NOT NULL DEFAULT '';
71 + ALTER TABLE webhook_logs ALTER COLUMN created_by DROP DEFAULT;
72 + ALTER TABLE webhook_logs ADD COLUMN IF NOT EXISTS last_updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW();
73 + ALTER TABLE webhook_logs ADD COLUMN IF NOT EXISTS last_updated_by TEXT NOT NULL DEFAULT '';
74 + ALTER TABLE webhook_logs ALTER COLUMN last_updated_by DROP DEFAULT;
75 + `)
76 + }
Newer Older