|
@@ -0,0 +1,275 @@
|
|
1
|
+--
|
|
2
|
+-- PostgreSQL database dump
|
|
3
|
+--
|
|
4
|
+
|
|
5
|
+SET statement_timeout = 0;
|
|
6
|
+SET client_encoding = 'UTF8';
|
|
7
|
+SET standard_conforming_strings = on;
|
|
8
|
+SET check_function_bodies = false;
|
|
9
|
+SET client_min_messages = warning;
|
|
10
|
+
|
|
11
|
+CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
|
12
|
+COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+SET search_path = public, pg_catalog;
|
|
16
|
+
|
|
17
|
+CREATE FUNCTION set_created_at() RETURNS trigger
|
|
18
|
+ LANGUAGE plpgsql
|
|
19
|
+ AS $$
|
|
20
|
+BEGIN
|
|
21
|
+ NEW.created_at = CURRENT_TIMESTAMP;
|
|
22
|
+ NEW.updated_at = CURRENT_TIMESTAMP;
|
|
23
|
+ RETURN NEW;
|
|
24
|
+END;
|
|
25
|
+$$;
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+ALTER FUNCTION public.set_created_at() OWNER TO pod_master;
|
|
29
|
+
|
|
30
|
+CREATE FUNCTION set_updated_at() RETURNS trigger
|
|
31
|
+ LANGUAGE plpgsql
|
|
32
|
+ AS $$
|
|
33
|
+BEGIN
|
|
34
|
+ NEW.updated_at = CURRENT_TIMESTAMP;
|
|
35
|
+ RETURN NEW;
|
|
36
|
+END;
|
|
37
|
+$$;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+ALTER FUNCTION public.set_updated_at() OWNER TO pod_master;
|
|
41
|
+
|
|
42
|
+SET default_tablespace = '';
|
|
43
|
+
|
|
44
|
+SET default_with_oids = false;
|
|
45
|
+
|
|
46
|
+CREATE TABLE migrate_version (
|
|
47
|
+ version_num character varying(32) NOT NULL
|
|
48
|
+);
|
|
49
|
+
|
|
50
|
+ALTER TABLE public.migrate_version OWNER TO pod_master;
|
|
51
|
+
|
|
52
|
+CREATE TABLE pod_node_status (
|
|
53
|
+ status_type character varying(16) NOT NULL,
|
|
54
|
+ status_id character varying(16) NOT NULL,
|
|
55
|
+ status_label character varying(256),
|
|
56
|
+ hexa_color_foreground character(7),
|
|
57
|
+ hexa_color_background character(7)
|
|
58
|
+);
|
|
59
|
+
|
|
60
|
+ALTER TABLE public.pod_node_status OWNER TO pod_master;
|
|
61
|
+
|
|
62
|
+CREATE TABLE pod_nodes (
|
|
63
|
+ node_id integer NOT NULL,
|
|
64
|
+ parent_id integer,
|
|
65
|
+ node_order integer DEFAULT 1,
|
|
66
|
+ node_type character varying(16) DEFAULT 'data'::character varying NOT NULL,
|
|
67
|
+ created_at timestamp without time zone,
|
|
68
|
+ updated_at timestamp without time zone,
|
|
69
|
+ data_label character varying(1024),
|
|
70
|
+ data_content text DEFAULT ''::text NOT NULL,
|
|
71
|
+ data_datetime timestamp without time zone,
|
|
72
|
+ node_status character varying(16) DEFAULT 'new'::character varying,
|
|
73
|
+ data_reminder_datetime timestamp without time zone,
|
|
74
|
+ data_file_name character varying(255),
|
|
75
|
+ data_file_content bytea,
|
|
76
|
+ data_file_mime_type character varying(255),
|
|
77
|
+ parent_tree_path character varying(255),
|
|
78
|
+ node_depth integer DEFAULT 0 NOT NULL,
|
|
79
|
+ owner_id integer
|
|
80
|
+);
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+ALTER TABLE public.pod_nodes OWNER TO pod_master;
|
|
84
|
+
|
|
85
|
+CREATE SEQUENCE pod_nodes__node_id__sequence
|
|
86
|
+ START WITH 1
|
|
87
|
+ INCREMENT BY 1
|
|
88
|
+ NO MINVALUE
|
|
89
|
+ NO MAXVALUE
|
|
90
|
+ CACHE 1;
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+ALTER TABLE public.pod_nodes__node_id__sequence OWNER TO pod_master;
|
|
94
|
+
|
|
95
|
+ALTER SEQUENCE pod_nodes__node_id__sequence OWNED BY pod_nodes.node_id;
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+CREATE TABLE pod_group (
|
|
99
|
+ group_id integer NOT NULL,
|
|
100
|
+ group_name character varying(16) NOT NULL,
|
|
101
|
+ display_name character varying(255),
|
|
102
|
+ created timestamp without time zone
|
|
103
|
+);
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+ALTER TABLE public.pod_group OWNER TO pod_master;
|
|
107
|
+
|
|
108
|
+CREATE SEQUENCE pod_group_group_id_seq
|
|
109
|
+ START WITH 1
|
|
110
|
+ INCREMENT BY 1
|
|
111
|
+ NO MINVALUE
|
|
112
|
+ NO MAXVALUE
|
|
113
|
+ CACHE 1;
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+ALTER TABLE public.pod_group_group_id_seq OWNER TO pod_master;
|
|
117
|
+
|
|
118
|
+ALTER SEQUENCE pod_group_group_id_seq OWNED BY pod_group.group_id;
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+CREATE TABLE pod_group_permission (
|
|
122
|
+ group_id integer NOT NULL,
|
|
123
|
+ permission_id integer NOT NULL
|
|
124
|
+);
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+ALTER TABLE public.pod_group_permission OWNER TO pod_master;
|
|
128
|
+
|
|
129
|
+CREATE TABLE pod_permission (
|
|
130
|
+ permission_id integer NOT NULL,
|
|
131
|
+ permission_name character varying(63) NOT NULL,
|
|
132
|
+ description character varying(255)
|
|
133
|
+);
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+ALTER TABLE public.pod_permission OWNER TO pod_master;
|
|
137
|
+
|
|
138
|
+CREATE SEQUENCE pod_permission_permission_id_seq
|
|
139
|
+ START WITH 1
|
|
140
|
+ INCREMENT BY 1
|
|
141
|
+ NO MINVALUE
|
|
142
|
+ NO MAXVALUE
|
|
143
|
+ CACHE 1;
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+ALTER TABLE public.pod_permission_permission_id_seq OWNER TO pod_master;
|
|
147
|
+
|
|
148
|
+ALTER SEQUENCE pod_permission_permission_id_seq OWNED BY pod_permission.permission_id;
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+CREATE TABLE pod_user (
|
|
152
|
+ user_id integer NOT NULL,
|
|
153
|
+ email_address character varying(255) NOT NULL,
|
|
154
|
+ display_name character varying(255),
|
|
155
|
+ password character varying(128),
|
|
156
|
+ created timestamp without time zone
|
|
157
|
+);
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+ALTER TABLE public.pod_user OWNER TO pod_master;
|
|
161
|
+
|
|
162
|
+CREATE TABLE pod_user_group (
|
|
163
|
+ user_id integer NOT NULL,
|
|
164
|
+ group_id integer NOT NULL
|
|
165
|
+);
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+ALTER TABLE public.pod_user_group OWNER TO pod_master;
|
|
169
|
+
|
|
170
|
+CREATE SEQUENCE pod_user_user_id_seq
|
|
171
|
+ START WITH 1
|
|
172
|
+ INCREMENT BY 1
|
|
173
|
+ NO MINVALUE
|
|
174
|
+ NO MAXVALUE
|
|
175
|
+ CACHE 1;
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+ALTER TABLE public.pod_user_user_id_seq OWNER TO pod_master;
|
|
179
|
+
|
|
180
|
+ALTER SEQUENCE pod_user_user_id_seq OWNED BY pod_user.user_id;
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+ALTER TABLE ONLY pod_nodes ALTER COLUMN node_id SET DEFAULT nextval('pod_nodes__node_id__sequence'::regclass);
|
|
184
|
+
|
|
185
|
+ALTER TABLE ONLY pod_group ALTER COLUMN group_id SET DEFAULT nextval('pod_group_group_id_seq'::regclass);
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+ALTER TABLE ONLY pod_permission ALTER COLUMN permission_id SET DEFAULT nextval('pod_permission_permission_id_seq'::regclass);
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+ALTER TABLE ONLY pod_user ALTER COLUMN user_id SET DEFAULT nextval('pod_user_user_id_seq'::regclass);
|
|
192
|
+
|
|
193
|
+ALTER TABLE ONLY pod_node_status
|
|
194
|
+ ADD CONSTRAINT pod_node_status__pk PRIMARY KEY (status_id);
|
|
195
|
+
|
|
196
|
+ALTER TABLE ONLY pod_nodes
|
|
197
|
+ ADD CONSTRAINT pod_nodes_pk PRIMARY KEY (node_id);
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+ALTER TABLE ONLY pod_group
|
|
201
|
+ ADD CONSTRAINT pod_group_group_name_key UNIQUE (group_name);
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+ALTER TABLE ONLY pod_group_permission
|
|
205
|
+ ADD CONSTRAINT pod_group_permission_pkey PRIMARY KEY (group_id, permission_id);
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+ALTER TABLE ONLY pod_group
|
|
209
|
+ ADD CONSTRAINT pod_group_pkey PRIMARY KEY (group_id);
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+ALTER TABLE ONLY pod_permission
|
|
213
|
+ ADD CONSTRAINT pod_permission_permission_name_key UNIQUE (permission_name);
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+ALTER TABLE ONLY pod_permission
|
|
217
|
+ ADD CONSTRAINT pod_permission_pkey PRIMARY KEY (permission_id);
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+ALTER TABLE ONLY pod_user
|
|
221
|
+ ADD CONSTRAINT pod_user_email_address_key UNIQUE (email_address);
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+ALTER TABLE ONLY pod_user_group
|
|
225
|
+ ADD CONSTRAINT pod_user_group_pkey PRIMARY KEY (user_id, group_id);
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+ALTER TABLE ONLY pod_user
|
|
229
|
+ ADD CONSTRAINT pod_user_pkey PRIMARY KEY (user_id);
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+CREATE INDEX fki_pod_nodes__owner_id_fk ON pod_nodes USING btree (owner_id);
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+CREATE INDEX fki_pod_nodes__parent_id_fk ON pod_nodes USING btree (parent_id);
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+CREATE INDEX idx_pod_nodes__parent_tree_path ON pod_nodes USING btree (parent_tree_path);
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+CREATE TRIGGER pod_nodes__on_insert_set_created_at BEFORE INSERT ON pod_nodes FOR EACH ROW EXECUTE PROCEDURE set_created_at();
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+CREATE TRIGGER pod_nodes__on_update_set_updated_at BEFORE UPDATE ON pod_nodes FOR EACH ROW EXECUTE PROCEDURE set_updated_at();
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+ALTER TABLE ONLY pod_nodes
|
|
248
|
+ ADD CONSTRAINT pod_nodes__owner_id_fk FOREIGN KEY (owner_id) REFERENCES pod_user(user_id);
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+ALTER TABLE ONLY pod_nodes
|
|
252
|
+ ADD CONSTRAINT pod_nodes__parent_id_fk FOREIGN KEY (parent_id) REFERENCES pod_nodes(node_id);
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+ALTER TABLE ONLY pod_group_permission
|
|
256
|
+ ADD CONSTRAINT pod_group_permission_group_id_fkey FOREIGN KEY (group_id) REFERENCES pod_group(group_id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+ALTER TABLE ONLY pod_group_permission
|
|
260
|
+ ADD CONSTRAINT pod_group_permission_permission_id_fkey FOREIGN KEY (permission_id) REFERENCES pod_permission(permission_id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+ALTER TABLE ONLY pod_user_group
|
|
264
|
+ ADD CONSTRAINT pod_user_group_group_id_fkey FOREIGN KEY (group_id) REFERENCES pod_group(group_id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+ALTER TABLE ONLY pod_user_group
|
|
268
|
+ ADD CONSTRAINT pod_user_group_user_id_fkey FOREIGN KEY (user_id) REFERENCES pod_user(user_id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+REVOKE ALL ON SCHEMA public FROM PUBLIC;
|
|
272
|
+REVOKE ALL ON SCHEMA public FROM postgres;
|
|
273
|
+GRANT ALL ON SCHEMA public TO postgres;
|
|
274
|
+GRANT ALL ON SCHEMA public TO PUBLIC;
|
|
275
|
+
|