-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.sql
86 lines (76 loc) · 2.52 KB
/
init.sql
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
CREATE EXTENSION IF NOT EXISTS ltree;
CREATE TABLE projects (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
title TEXT
);
CREATE TABLE groups (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
label VARCHAR (99),
x DOUBLE PRECISION,
y DOUBLE PRECISION,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE,
tree ltree DEFAULT text2ltree('0'),
matrix_index ltree
);
CREATE TABLE matrixes (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
label VARCHAR (99),
x DOUBLE PRECISION,
y DOUBLE PRECISION,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE,
cols JSONB DEFAULT '["header", "header"]',
rows JSONB DEFAULT '["index", "index"]',
tree ltree DEFAULT text2ltree('0')
);
CREATE TABLE notes (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
content TEXT,
color VARCHAR (7),
x DOUBLE PRECISION,
y DOUBLE PRECISION,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE,
tree ltree DEFAULT text2ltree('0'),
pipe_from INT REFERENCES notes (id) ON UPDATE CASCADE ON DELETE CASCADE
);
CREATE TABLE cards (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
content JSONB,
x DOUBLE PRECISION,
y DOUBLE PRECISION,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE,
tree ltree DEFAULT text2ltree('0'),
source TEXT
);
CREATE TABLE titles (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
content TEXT,
x DOUBLE PRECISION,
y DOUBLE PRECISION,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE,
tree ltree DEFAULT text2ltree('0')
);
CREATE TABLE datasources (
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
query TEXT,
platform VARCHAR (99),
loaded INT,
total INT,
project INT REFERENCES projects (id) ON UPDATE CASCADE ON DELETE CASCADE
);
CREATE TABLE pipes (
"from" INT REFERENCES groups (id) ON UPDATE CASCADE ON DELETE CASCADE,
"to" INT UNIQUE REFERENCES groups (id) ON UPDATE CASCADE ON DELETE CASCADE
);
ALTER TABLE pipes DROP CONSTRAINT pipes_to_key;
ALTER TABLE pipes ADD COLUMN sm_pipe_id INT GENERATED ALWAYS AS
(CASE WHEN "from" < "to" THEN "from" ELSE "to" END) STORED;
ALTER TABLE pipes ADD COLUMN lg_pipe_id INT GENERATED ALWAYS AS
(CASE WHEN "from" > "to" THEN "from" ELSE "to" END) STORED;
ALTER TABLE pipes ADD CONSTRAINT unique_flow UNIQUE (sm_pipe_id, lg_pipe_id);
CREATE TABLE session (
sid varchar NOT NULL COLLATE "default",
sess json NOT NULL,
expire timestamp(6) NOT NULL
) WITH (OIDS = FALSE);
ALTER TABLE session ADD CONSTRAINT session_pkey PRIMARY KEY (sid) NOT DEFERRABLE INITIALLY IMMEDIATE;
CREATE INDEX IDX_session_expire ON session ("expire");