Support for users, roles, restrictions.
[cocanwiki.git] / cocanwiki.sql
1 --
2 -- PostgreSQL database dump
3 --
4
5 SET client_encoding = 'UNICODE';
6 SET check_function_bodies = false;
7
8 SET SESSION AUTHORIZATION 'postgres';
9
10 --
11 -- TOC entry 4 (OID 2200)
12 -- Name: public; Type: ACL; Schema: -; Owner: postgres
13 --
14
15 REVOKE ALL ON SCHEMA public FROM PUBLIC;
16 REVOKE ALL ON SCHEMA public FROM postgres;
17 GRANT ALL ON SCHEMA public TO PUBLIC;
18
19
20 SET SESSION AUTHORIZATION 'rich';
21
22 SET search_path = public, pg_catalog;
23
24 --
25 -- TOC entry 5 (OID 536004)
26 -- Name: pages; Type: TABLE; Schema: public; Owner: rich
27 --
28
29 CREATE TABLE pages (
30     id serial NOT NULL,
31     url text,
32     url_deleted text,
33     title text NOT NULL,
34     description text NOT NULL,
35     creation_date timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL,
36     last_modified_date timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL,
37     hostid integer NOT NULL,
38     logged_ip text,
39     redirect text,
40     css text
41 );
42
43
44 --
45 -- TOC entry 6 (OID 536004)
46 -- Name: pages; Type: ACL; Schema: public; Owner: rich
47 --
48
49 REVOKE ALL ON TABLE pages FROM PUBLIC;
50 GRANT ALL ON TABLE pages TO "www-data";
51
52
53 --
54 -- TOC entry 23 (OID 536004)
55 -- Name: pages_id_seq; Type: ACL; Schema: public; Owner: rich
56 --
57
58 REVOKE ALL ON TABLE pages_id_seq FROM PUBLIC;
59 GRANT ALL ON TABLE pages_id_seq TO "www-data";
60
61
62 --
63 -- TOC entry 7 (OID 536021)
64 -- Name: contents; Type: TABLE; Schema: public; Owner: rich
65 --
66
67 CREATE TABLE contents (
68     id serial NOT NULL,
69     pageid integer NOT NULL,
70     ordering integer NOT NULL,
71     sectionname text NOT NULL,
72     content text NOT NULL,
73     divname text
74 );
75
76
77 --
78 -- TOC entry 8 (OID 536021)
79 -- Name: contents; Type: ACL; Schema: public; Owner: rich
80 --
81
82 REVOKE ALL ON TABLE contents FROM PUBLIC;
83 GRANT ALL ON TABLE contents TO "www-data";
84
85
86 --
87 -- TOC entry 24 (OID 536021)
88 -- Name: contents_id_seq; Type: ACL; Schema: public; Owner: rich
89 --
90
91 REVOKE ALL ON TABLE contents_id_seq FROM PUBLIC;
92 GRANT ALL ON TABLE contents_id_seq TO "www-data";
93
94
95 --
96 -- TOC entry 9 (OID 536371)
97 -- Name: hosts; Type: TABLE; Schema: public; Owner: rich
98 --
99
100 CREATE TABLE hosts (
101     id serial NOT NULL,
102     canonical_hostname text NOT NULL,
103     css text,
104     edit_anon boolean DEFAULT true NOT NULL
105 );
106
107
108 --
109 -- TOC entry 10 (OID 536371)
110 -- Name: hosts; Type: ACL; Schema: public; Owner: rich
111 --
112
113 REVOKE ALL ON TABLE hosts FROM PUBLIC;
114 GRANT ALL ON TABLE hosts TO "www-data";
115
116
117 --
118 -- TOC entry 25 (OID 536371)
119 -- Name: hosts_id_seq; Type: ACL; Schema: public; Owner: rich
120 --
121
122 REVOKE ALL ON TABLE hosts_id_seq FROM PUBLIC;
123 GRANT ALL ON TABLE hosts_id_seq TO "www-data";
124
125
126 --
127 -- TOC entry 11 (OID 536379)
128 -- Name: hostnames; Type: TABLE; Schema: public; Owner: rich
129 --
130
131 CREATE TABLE hostnames (
132     hostid integer NOT NULL,
133     name text NOT NULL
134 );
135
136
137 --
138 -- TOC entry 12 (OID 536379)
139 -- Name: hostnames; Type: ACL; Schema: public; Owner: rich
140 --
141
142 REVOKE ALL ON TABLE hostnames FROM PUBLIC;
143 GRANT ALL ON TABLE hostnames TO "www-data";
144
145
146 --
147 -- TOC entry 13 (OID 536915)
148 -- Name: email_notify; Type: TABLE; Schema: public; Owner: rich
149 --
150
151 CREATE TABLE email_notify (
152     hostid integer NOT NULL,
153     email text NOT NULL,
154     name text
155 );
156
157
158 --
159 -- TOC entry 14 (OID 536915)
160 -- Name: email_notify; Type: ACL; Schema: public; Owner: rich
161 --
162
163 REVOKE ALL ON TABLE email_notify FROM PUBLIC;
164 GRANT ALL ON TABLE email_notify TO "www-data";
165
166
167 --
168 -- TOC entry 15 (OID 537151)
169 -- Name: images; Type: TABLE; Schema: public; Owner: rich
170 --
171
172 CREATE TABLE images (
173     id serial NOT NULL,
174     hostid integer NOT NULL,
175     name text,
176     name_deleted text,
177     image bytea NOT NULL,
178     width integer NOT NULL,
179     height integer NOT NULL,
180     alt text NOT NULL,
181     title text,
182     longdesc text,
183     "class" text,
184     mime_type text NOT NULL,
185     thumbnail bytea,
186     tn_width integer,
187     tn_height integer,
188     tn_mime_type text,
189     upload_date timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL
190 );
191
192
193 --
194 -- TOC entry 16 (OID 537151)
195 -- Name: images; Type: ACL; Schema: public; Owner: rich
196 --
197
198 REVOKE ALL ON TABLE images FROM PUBLIC;
199 GRANT ALL ON TABLE images TO "www-data";
200
201
202 --
203 -- TOC entry 26 (OID 537151)
204 -- Name: images_id_seq; Type: ACL; Schema: public; Owner: rich
205 --
206
207 REVOKE ALL ON TABLE images_id_seq FROM PUBLIC;
208 GRANT ALL ON TABLE images_id_seq TO "www-data";
209
210
211 --
212 -- TOC entry 17 (OID 537166)
213 -- Name: files; Type: TABLE; Schema: public; Owner: rich
214 --
215
216 CREATE TABLE files (
217     id serial NOT NULL,
218     hostid integer NOT NULL,
219     name text,
220     name_deleted text,
221     content bytea NOT NULL,
222     title text,
223     mime_type text NOT NULL,
224     upload_date timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL
225 );
226
227
228 --
229 -- TOC entry 18 (OID 537166)
230 -- Name: files; Type: ACL; Schema: public; Owner: rich
231 --
232
233 REVOKE ALL ON TABLE files FROM PUBLIC;
234 GRANT ALL ON TABLE files TO "www-data";
235
236
237 --
238 -- TOC entry 27 (OID 537166)
239 -- Name: files_id_seq; Type: ACL; Schema: public; Owner: rich
240 --
241
242 REVOKE ALL ON TABLE files_id_seq FROM PUBLIC;
243 GRANT ALL ON TABLE files_id_seq TO "www-data";
244
245
246 --
247 -- TOC entry 19 (OID 540816)
248 -- Name: users; Type: TABLE; Schema: public; Owner: rich
249 --
250
251 CREATE TABLE users (
252     id serial NOT NULL,
253     hostid integer NOT NULL,
254     name text NOT NULL,
255     "password" text NOT NULL,
256     email text,
257     registration_date date DEFAULT ('now'::text)::date NOT NULL,
258     can_edit boolean DEFAULT true NOT NULL,
259     can_manage_users boolean DEFAULT false NOT NULL
260 );
261
262
263 --
264 -- TOC entry 20 (OID 540816)
265 -- Name: users; Type: ACL; Schema: public; Owner: rich
266 --
267
268 REVOKE ALL ON TABLE users FROM PUBLIC;
269 GRANT ALL ON TABLE users TO "www-data";
270
271
272 --
273 -- TOC entry 28 (OID 540816)
274 -- Name: users_id_seq; Type: ACL; Schema: public; Owner: rich
275 --
276
277 REVOKE ALL ON TABLE users_id_seq FROM PUBLIC;
278 GRANT ALL ON TABLE users_id_seq TO "www-data";
279
280
281 --
282 -- TOC entry 21 (OID 540832)
283 -- Name: usercookies; Type: TABLE; Schema: public; Owner: rich
284 --
285
286 CREATE TABLE usercookies (
287     userid integer NOT NULL,
288     cookie text NOT NULL
289 );
290
291
292 --
293 -- TOC entry 22 (OID 540832)
294 -- Name: usercookies; Type: ACL; Schema: public; Owner: rich
295 --
296
297 REVOKE ALL ON TABLE usercookies FROM PUBLIC;
298 GRANT ALL ON TABLE usercookies TO "www-data";
299
300
301 --
302 -- TOC entry 33 (OID 536388)
303 -- Name: hostnames_hostid_name_uq; Type: INDEX; Schema: public; Owner: rich
304 --
305
306 CREATE UNIQUE INDEX hostnames_hostid_name_uq ON hostnames USING btree (hostid, name);
307
308
309 --
310 -- TOC entry 34 (OID 536389)
311 -- Name: hostnams_name_uq; Type: INDEX; Schema: public; Owner: rich
312 --
313
314 CREATE UNIQUE INDEX hostnams_name_uq ON hostnames USING btree (name);
315
316
317 --
318 -- TOC entry 30 (OID 536419)
319 -- Name: pages_url_uq; Type: INDEX; Schema: public; Owner: rich
320 --
321
322 CREATE UNIQUE INDEX pages_url_uq ON pages USING btree (hostid, url);
323
324
325 --
326 -- TOC entry 35 (OID 536924)
327 -- Name: email_notify_email_uq; Type: INDEX; Schema: public; Owner: rich
328 --
329
330 CREATE UNIQUE INDEX email_notify_email_uq ON email_notify USING btree (hostid, email);
331
332
333 --
334 -- TOC entry 36 (OID 540251)
335 -- Name: images_name_uq; Type: INDEX; Schema: public; Owner: rich
336 --
337
338 CREATE UNIQUE INDEX images_name_uq ON images USING btree (hostid, name);
339
340
341 --
342 -- TOC entry 38 (OID 540252)
343 -- Name: files_name_uq; Type: INDEX; Schema: public; Owner: rich
344 --
345
346 CREATE UNIQUE INDEX files_name_uq ON files USING btree (hostid, name);
347
348
349 --
350 -- TOC entry 40 (OID 540831)
351 -- Name: users_name_uq; Type: INDEX; Schema: public; Owner: rich
352 --
353
354 CREATE UNIQUE INDEX users_name_uq ON users USING btree (hostid, name);
355
356
357 --
358 -- TOC entry 29 (OID 536012)
359 -- Name: pages_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
360 --
361
362 ALTER TABLE ONLY pages
363     ADD CONSTRAINT pages_pkey PRIMARY KEY (id);
364
365
366 --
367 -- TOC entry 31 (OID 536027)
368 -- Name: contents_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
369 --
370
371 ALTER TABLE ONLY contents
372     ADD CONSTRAINT contents_pkey PRIMARY KEY (id);
373
374
375 --
376 -- TOC entry 32 (OID 536377)
377 -- Name: hosts_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
378 --
379
380 ALTER TABLE ONLY hosts
381     ADD CONSTRAINT hosts_pkey PRIMARY KEY (id);
382
383
384 --
385 -- TOC entry 37 (OID 537158)
386 -- Name: images_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
387 --
388
389 ALTER TABLE ONLY images
390     ADD CONSTRAINT images_pkey PRIMARY KEY (id);
391
392
393 --
394 -- TOC entry 39 (OID 537173)
395 -- Name: files_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
396 --
397
398 ALTER TABLE ONLY files
399     ADD CONSTRAINT files_pkey PRIMARY KEY (id);
400
401
402 --
403 -- TOC entry 41 (OID 540825)
404 -- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: rich
405 --
406
407 ALTER TABLE ONLY users
408     ADD CONSTRAINT users_pkey PRIMARY KEY (id);
409
410
411 --
412 -- TOC entry 44 (OID 536029)
413 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
414 --
415
416 ALTER TABLE ONLY contents
417     ADD CONSTRAINT "$1" FOREIGN KEY (pageid) REFERENCES pages(id);
418
419
420 --
421 -- TOC entry 46 (OID 536384)
422 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
423 --
424
425 ALTER TABLE ONLY hostnames
426     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
427
428
429 --
430 -- TOC entry 45 (OID 536394)
431 -- Name: hosts_hostname_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
432 --
433
434 ALTER TABLE ONLY hosts
435     ADD CONSTRAINT hosts_hostname_cn FOREIGN KEY (id, canonical_hostname) REFERENCES hostnames(hostid, name) DEFERRABLE;
436
437
438 --
439 -- TOC entry 42 (OID 536404)
440 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
441 --
442
443 ALTER TABLE ONLY pages
444     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
445
446
447 --
448 -- TOC entry 47 (OID 536920)
449 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
450 --
451
452 ALTER TABLE ONLY email_notify
453     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
454
455
456 --
457 -- TOC entry 48 (OID 537160)
458 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
459 --
460
461 ALTER TABLE ONLY images
462     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
463
464
465 --
466 -- TOC entry 49 (OID 537175)
467 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
468 --
469
470 ALTER TABLE ONLY files
471     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
472
473
474 --
475 -- TOC entry 43 (OID 539155)
476 -- Name: pages_redirect_cn; Type: FK CONSTRAINT; Schema: public; Owner: rich
477 --
478
479 ALTER TABLE ONLY pages
480     ADD CONSTRAINT pages_redirect_cn FOREIGN KEY (hostid, redirect) REFERENCES pages(hostid, url) DEFERRABLE;
481
482
483 --
484 -- TOC entry 50 (OID 540827)
485 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
486 --
487
488 ALTER TABLE ONLY users
489     ADD CONSTRAINT "$1" FOREIGN KEY (hostid) REFERENCES hosts(id);
490
491
492 --
493 -- TOC entry 51 (OID 540837)
494 -- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: rich
495 --
496
497 ALTER TABLE ONLY usercookies
498     ADD CONSTRAINT "$1" FOREIGN KEY (userid) REFERENCES users(id);
499
500
501 SET SESSION AUTHORIZATION 'postgres';
502
503 --
504 -- TOC entry 3 (OID 2200)
505 -- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
506 --
507
508 COMMENT ON SCHEMA public IS 'Standard public namespace';
509
510