rootspring revised this gist . 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