-
Notifications
You must be signed in to change notification settings - Fork 4.7k
/
015_270_to_280.lua
57 lines (53 loc) 路 1.82 KB
/
015_270_to_280.lua
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
return {
postgres = {
up = [[
CREATE TABLE IF NOT EXISTS "vaults_beta" (
"id" UUID PRIMARY KEY,
"ws_id" UUID REFERENCES "workspaces" ("id"),
"prefix" TEXT UNIQUE,
"name" TEXT NOT NULL,
"description" TEXT,
"config" JSONB NOT NULL,
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT (CURRENT_TIMESTAMP(0) AT TIME ZONE 'UTC'),
"updated_at" TIMESTAMP WITH TIME ZONE,
"tags" TEXT[],
UNIQUE ("id", "ws_id"),
UNIQUE ("prefix", "ws_id")
);
DROP TRIGGER IF EXISTS "vaults_beta_sync_tags_trigger" ON "vaults_beta";
DO $$
BEGIN
CREATE INDEX IF NOT EXISTS "vaults_beta_tags_idx" ON "vaults_beta" USING GIN ("tags");
EXCEPTION WHEN UNDEFINED_COLUMN THEN
-- Do nothing, accept existing state
END$$;
DO $$
BEGIN
CREATE TRIGGER "vaults_beta_sync_tags_trigger"
AFTER INSERT OR UPDATE OF "tags" OR DELETE ON "vaults_beta"
FOR EACH ROW
EXECUTE PROCEDURE sync_tags();
EXCEPTION WHEN UNDEFINED_COLUMN OR UNDEFINED_TABLE THEN
-- Do nothing, accept existing state
END$$;
]]
},
cassandra = {
up = [[
CREATE TABLE IF NOT EXISTS vaults_beta (
id uuid,
ws_id uuid,
prefix text,
name text,
description text,
config text,
created_at timestamp,
updated_at timestamp,
tags set<text>,
PRIMARY KEY (id)
);
CREATE INDEX IF NOT EXISTS vaults_beta_prefix_idx ON vaults_beta (prefix);
CREATE INDEX IF NOT EXISTS vaults_beta_ws_id_idx ON vaults_beta (ws_id);
]]
},
}