source: trunk/jpdd/sql/db.sql @ 89

Last change on this file since 89 was 89, checked in by dkg, 6 years ago

JPDD: added proper tables to the database for mailings, user tracking, and password resets. updated homepage a little bit.

File size: 16.6 KB
Line 
1--
2-- PostgreSQL database dump
3--
4
5SET client_encoding = 'UTF8';
6SET check_function_bodies = false;
7SET client_min_messages = warning;
8
9--
10-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
11--
12
13COMMENT ON SCHEMA public IS 'Standard public schema';
14
15
16SET search_path = public, pg_catalog;
17
18SET default_tablespace = '';
19
20SET default_with_oids = false;
21
22--
23-- Name: affiliation; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
24--
25
26CREATE TABLE affiliation (
27    id serial NOT NULL,
28    person_id integer NOT NULL,
29    organization_id integer NOT NULL
30);
31
32
33ALTER TABLE public.affiliation OWNER TO dkg;
34
35--
36-- Name: attendance; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
37--
38
39CREATE TABLE attendance (
40    id serial NOT NULL,
41    workshop_id integer NOT NULL,
42    person_id integer NOT NULL,
43    flavor character varying NOT NULL,
44    CONSTRAINT attendance_flavor_check CHECK ((((flavor)::text = 'presenter'::text) OR ((flavor)::text = 'audience'::text)))
45);
46
47
48ALTER TABLE public.attendance OWNER TO dkg;
49
50--
51-- Name: audience; Type: VIEW; Schema: public; Owner: dkg
52--
53
54CREATE VIEW audience AS
55    SELECT attendance.workshop_id, attendance.person_id FROM attendance WHERE ((attendance.flavor)::text = 'audience'::text);
56
57
58ALTER TABLE public.audience OWNER TO dkg;
59
60--
61-- Name: category; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
62--
63
64CREATE TABLE category (
65    id serial NOT NULL,
66    title character varying NOT NULL,
67    description text
68);
69
70
71ALTER TABLE public.category OWNER TO dkg;
72
73--
74-- Name: log; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
75--
76
77CREATE TABLE log (
78    id serial NOT NULL,
79    date timestamp with time zone DEFAULT now() NOT NULL,
80    data text,
81    backtrace text,
82    servervars text
83);
84
85
86ALTER TABLE public.log OWNER TO dkg;
87
88--
89-- Name: mail_log; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
90--
91
92CREATE TABLE mail_log (
93    id serial NOT NULL,
94    mail_from character varying NOT NULL,
95    mail_to character varying NOT NULL,
96    subject character varying NOT NULL,
97    body text NOT NULL,
98    extra_headers character varying,
99    whattime timestamp with time zone DEFAULT now() NOT NULL
100);
101
102
103ALTER TABLE public.mail_log OWNER TO dkg;
104
105--
106-- Name: organization; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
107--
108
109CREATE TABLE organization (
110    id serial NOT NULL,
111    title character varying NOT NULL,
112    description text
113);
114
115
116ALTER TABLE public.organization OWNER TO dkg;
117
118--
119-- Name: person; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
120--
121
122CREATE TABLE person (
123    id serial NOT NULL,
124    first_name character varying,
125    last_name character varying NOT NULL,
126    email character varying,
127    middle_name character varying,
128    pass character(40),
129    session_value character(30),
130    session_touched timestamp with time zone,
131    session_created timestamp with time zone,
132    resetpass character varying(30),
133    resetpass_created timestamp with time zone,
134    CONSTRAINT person_email_check CHECK (((email)::text <> ''::text)),
135    CONSTRAINT person_first_name_check CHECK (((first_name)::text <> ''::text)),
136    CONSTRAINT person_last_name_check CHECK (((last_name)::text <> ''::text)),
137    CONSTRAINT person_middle_name_check CHECK (((middle_name)::text <> ''::text))
138);
139
140
141ALTER TABLE public.person OWNER TO dkg;
142
143--
144-- Name: person_privilege; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
145--
146
147CREATE TABLE person_privilege (
148    person_id integer NOT NULL,
149    privilege_id integer NOT NULL
150);
151
152
153ALTER TABLE public.person_privilege OWNER TO dkg;
154
155--
156-- Name: post_log; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
157--
158
159CREATE TABLE post_log (
160    id serial NOT NULL,
161    person_id integer,
162    whattime timestamp with time zone DEFAULT now() NOT NULL,
163    from_ip inet NOT NULL,
164    request character varying NOT NULL,
165    "action" character varying,
166    "type" character varying
167);
168
169
170ALTER TABLE public.post_log OWNER TO dkg;
171
172--
173-- Name: presenter; Type: VIEW; Schema: public; Owner: dkg
174--
175
176CREATE VIEW presenter AS
177    SELECT attendance.workshop_id, attendance.person_id FROM attendance WHERE ((attendance.flavor)::text = 'presenter'::text);
178
179
180ALTER TABLE public.presenter OWNER TO dkg;
181
182--
183-- Name: privilege; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
184--
185
186CREATE TABLE privilege (
187    id serial NOT NULL,
188    title character varying NOT NULL,
189    description text
190);
191
192
193ALTER TABLE public.privilege OWNER TO dkg;
194
195--
196-- Name: room; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
197--
198
199CREATE TABLE room (
200    id serial NOT NULL,
201    title character varying(20) NOT NULL,
202    description text,
203    capacity integer,
204    CONSTRAINT room_title_check CHECK (((title)::text <> ''::text))
205);
206
207
208ALTER TABLE public.room OWNER TO dkg;
209
210--
211-- Name: workshop; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
212--
213
214CREATE TABLE workshop (
215    id serial NOT NULL,
216    title character varying NOT NULL,
217    short_title character varying(35),
218    description text,
219    min_attendees integer DEFAULT 5 NOT NULL,
220    max_attendees integer DEFAULT 25 NOT NULL,
221    room_id integer,
222    CONSTRAINT workshop_check CHECK (((char_length((title)::text) <= 35) OR (short_title IS NOT NULL))),
223    CONSTRAINT workshop_check1 CHECK ((max_attendees >= min_attendees)),
224    CONSTRAINT workshop_min_attendees_check CHECK ((min_attendees >= 0)),
225    CONSTRAINT workshop_title_check CHECK (((title)::text <> ''::text))
226);
227
228
229ALTER TABLE public.workshop OWNER TO dkg;
230
231--
232-- Name: workshop_category; Type: TABLE; Schema: public; Owner: dkg; Tablespace:
233--
234
235CREATE TABLE workshop_category (
236    workshop_id integer NOT NULL,
237    category_id integer NOT NULL
238);
239
240
241ALTER TABLE public.workshop_category OWNER TO dkg;
242
243--
244-- Name: affiliation_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
245--
246
247ALTER TABLE ONLY affiliation
248    ADD CONSTRAINT affiliation_pkey PRIMARY KEY (id);
249
250
251--
252-- Name: attendance_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
253--
254
255ALTER TABLE ONLY attendance
256    ADD CONSTRAINT attendance_pkey PRIMARY KEY (id);
257
258
259--
260-- Name: category_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
261--
262
263ALTER TABLE ONLY category
264    ADD CONSTRAINT category_pkey PRIMARY KEY (id);
265
266
267--
268-- Name: category_title_key; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
269--
270
271ALTER TABLE ONLY category
272    ADD CONSTRAINT category_title_key UNIQUE (title);
273
274
275--
276-- Name: log_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
277--
278
279ALTER TABLE ONLY log
280    ADD CONSTRAINT log_pkey PRIMARY KEY (id);
281
282
283--
284-- Name: mail_log_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
285--
286
287ALTER TABLE ONLY mail_log
288    ADD CONSTRAINT mail_log_pkey PRIMARY KEY (id);
289
290
291--
292-- Name: no_double_attendance; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
293--
294
295ALTER TABLE ONLY attendance
296    ADD CONSTRAINT no_double_attendance UNIQUE (workshop_id, person_id);
297
298
299--
300-- Name: no_double_category; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
301--
302
303ALTER TABLE ONLY workshop_category
304    ADD CONSTRAINT no_double_category UNIQUE (workshop_id, category_id);
305
306
307--
308-- Name: no_double_privileges; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
309--
310
311ALTER TABLE ONLY person_privilege
312    ADD CONSTRAINT no_double_privileges UNIQUE (person_id, privilege_id);
313
314
315--
316-- Name: organization_name_key; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
317--
318
319ALTER TABLE ONLY organization
320    ADD CONSTRAINT organization_name_key UNIQUE (title);
321
322
323--
324-- Name: organization_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
325--
326
327ALTER TABLE ONLY organization
328    ADD CONSTRAINT organization_pkey PRIMARY KEY (id);
329
330
331--
332-- Name: person_email_unique; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
333--
334
335ALTER TABLE ONLY person
336    ADD CONSTRAINT person_email_unique UNIQUE (email);
337
338
339--
340-- Name: person_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
341--
342
343ALTER TABLE ONLY person
344    ADD CONSTRAINT person_pkey PRIMARY KEY (id);
345
346
347--
348-- Name: post_log_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
349--
350
351ALTER TABLE ONLY post_log
352    ADD CONSTRAINT post_log_pkey PRIMARY KEY (id);
353
354
355--
356-- Name: privilege_name_key; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
357--
358
359ALTER TABLE ONLY privilege
360    ADD CONSTRAINT privilege_name_key UNIQUE (title);
361
362
363--
364-- Name: privilege_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
365--
366
367ALTER TABLE ONLY privilege
368    ADD CONSTRAINT privilege_pkey PRIMARY KEY (id);
369
370
371--
372-- Name: room_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
373--
374
375ALTER TABLE ONLY room
376    ADD CONSTRAINT room_pkey PRIMARY KEY (id);
377
378
379--
380-- Name: unique_room_title; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
381--
382
383ALTER TABLE ONLY room
384    ADD CONSTRAINT unique_room_title UNIQUE (title);
385
386
387--
388-- Name: workshop_pkey; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
389--
390
391ALTER TABLE ONLY workshop
392    ADD CONSTRAINT workshop_pkey PRIMARY KEY (id);
393
394
395--
396-- Name: workshop_room_id_key; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
397--
398
399ALTER TABLE ONLY workshop
400    ADD CONSTRAINT workshop_room_id_key UNIQUE (room_id);
401
402
403--
404-- Name: workshop_title_key; Type: CONSTRAINT; Schema: public; Owner: dkg; Tablespace:
405--
406
407ALTER TABLE ONLY workshop
408    ADD CONSTRAINT workshop_title_key UNIQUE (title);
409
410
411--
412-- Name: affiliation_organization_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
413--
414
415ALTER TABLE ONLY affiliation
416    ADD CONSTRAINT affiliation_organization_id_fkey FOREIGN KEY (organization_id) REFERENCES organization(id);
417
418
419--
420-- Name: affiliation_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
421--
422
423ALTER TABLE ONLY affiliation
424    ADD CONSTRAINT affiliation_person_id_fkey FOREIGN KEY (person_id) REFERENCES person(id);
425
426
427--
428-- Name: attendance_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
429--
430
431ALTER TABLE ONLY attendance
432    ADD CONSTRAINT attendance_person_id_fkey FOREIGN KEY (person_id) REFERENCES person(id);
433
434
435--
436-- Name: attendance_workshop_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
437--
438
439ALTER TABLE ONLY attendance
440    ADD CONSTRAINT attendance_workshop_id_fkey FOREIGN KEY (workshop_id) REFERENCES workshop(id);
441
442
443--
444-- Name: person_privilege_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
445--
446
447ALTER TABLE ONLY person_privilege
448    ADD CONSTRAINT person_privilege_person_id_fkey FOREIGN KEY (person_id) REFERENCES person(id);
449
450
451--
452-- Name: person_privilege_privilege_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
453--
454
455ALTER TABLE ONLY person_privilege
456    ADD CONSTRAINT person_privilege_privilege_id_fkey FOREIGN KEY (privilege_id) REFERENCES privilege(id);
457
458
459--
460-- Name: post_log_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
461--
462
463ALTER TABLE ONLY post_log
464    ADD CONSTRAINT post_log_person_id_fkey FOREIGN KEY (person_id) REFERENCES person(id);
465
466
467--
468-- Name: workshop_category_category_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
469--
470
471ALTER TABLE ONLY workshop_category
472    ADD CONSTRAINT workshop_category_category_id_fkey FOREIGN KEY (category_id) REFERENCES category(id);
473
474
475--
476-- Name: workshop_category_workshop_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
477--
478
479ALTER TABLE ONLY workshop_category
480    ADD CONSTRAINT workshop_category_workshop_id_fkey FOREIGN KEY (workshop_id) REFERENCES workshop(id);
481
482
483--
484-- Name: workshop_room_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dkg
485--
486
487ALTER TABLE ONLY workshop
488    ADD CONSTRAINT workshop_room_id_fkey FOREIGN KEY (room_id) REFERENCES room(id);
489
490
491--
492-- Name: public; Type: ACL; Schema: -; Owner: postgres
493--
494
495REVOKE ALL ON SCHEMA public FROM PUBLIC;
496REVOKE ALL ON SCHEMA public FROM postgres;
497GRANT ALL ON SCHEMA public TO postgres;
498GRANT ALL ON SCHEMA public TO PUBLIC;
499
500
501--
502-- Name: affiliation; Type: ACL; Schema: public; Owner: dkg
503--
504
505REVOKE ALL ON TABLE affiliation FROM PUBLIC;
506REVOKE ALL ON TABLE affiliation FROM dkg;
507GRANT ALL ON TABLE affiliation TO dkg;
508GRANT INSERT,SELECT,DELETE ON TABLE affiliation TO "www-data";
509
510
511--
512-- Name: affiliation_id_seq; Type: ACL; Schema: public; Owner: dkg
513--
514
515REVOKE ALL ON TABLE affiliation_id_seq FROM PUBLIC;
516REVOKE ALL ON TABLE affiliation_id_seq FROM dkg;
517GRANT ALL ON TABLE affiliation_id_seq TO dkg;
518GRANT UPDATE ON TABLE affiliation_id_seq TO "www-data";
519
520
521--
522-- Name: attendance; Type: ACL; Schema: public; Owner: dkg
523--
524
525REVOKE ALL ON TABLE attendance FROM PUBLIC;
526REVOKE ALL ON TABLE attendance FROM dkg;
527GRANT ALL ON TABLE attendance TO dkg;
528GRANT INSERT,SELECT,DELETE ON TABLE attendance TO "www-data";
529
530
531--
532-- Name: attendance_id_seq; Type: ACL; Schema: public; Owner: dkg
533--
534
535REVOKE ALL ON TABLE attendance_id_seq FROM PUBLIC;
536REVOKE ALL ON TABLE attendance_id_seq FROM dkg;
537GRANT ALL ON TABLE attendance_id_seq TO dkg;
538GRANT SELECT,UPDATE ON TABLE attendance_id_seq TO "www-data";
539
540
541--
542-- Name: audience; Type: ACL; Schema: public; Owner: dkg
543--
544
545REVOKE ALL ON TABLE audience FROM PUBLIC;
546REVOKE ALL ON TABLE audience FROM dkg;
547GRANT ALL ON TABLE audience TO dkg;
548GRANT SELECT ON TABLE audience TO "www-data";
549
550
551--
552-- Name: category; Type: ACL; Schema: public; Owner: dkg
553--
554
555REVOKE ALL ON TABLE category FROM PUBLIC;
556REVOKE ALL ON TABLE category FROM dkg;
557GRANT ALL ON TABLE category TO dkg;
558GRANT SELECT ON TABLE category TO "www-data";
559
560
561--
562-- Name: log; Type: ACL; Schema: public; Owner: dkg
563--
564
565REVOKE ALL ON TABLE log FROM PUBLIC;
566REVOKE ALL ON TABLE log FROM dkg;
567GRANT ALL ON TABLE log TO dkg;
568GRANT INSERT ON TABLE log TO "www-data";
569
570
571--
572-- Name: log_id_seq; Type: ACL; Schema: public; Owner: dkg
573--
574
575REVOKE ALL ON TABLE log_id_seq FROM PUBLIC;
576REVOKE ALL ON TABLE log_id_seq FROM dkg;
577GRANT ALL ON TABLE log_id_seq TO dkg;
578GRANT SELECT,UPDATE ON TABLE log_id_seq TO "www-data";
579
580
581--
582-- Name: organization; Type: ACL; Schema: public; Owner: dkg
583--
584
585REVOKE ALL ON TABLE organization FROM PUBLIC;
586REVOKE ALL ON TABLE organization FROM dkg;
587GRANT ALL ON TABLE organization TO dkg;
588GRANT INSERT,SELECT,UPDATE ON TABLE organization TO "www-data";
589
590
591--
592-- Name: organization_id_seq; Type: ACL; Schema: public; Owner: dkg
593--
594
595REVOKE ALL ON TABLE organization_id_seq FROM PUBLIC;
596REVOKE ALL ON TABLE organization_id_seq FROM dkg;
597GRANT ALL ON TABLE organization_id_seq TO dkg;
598GRANT SELECT,UPDATE ON TABLE organization_id_seq TO "www-data";
599
600
601--
602-- Name: person; Type: ACL; Schema: public; Owner: dkg
603--
604
605REVOKE ALL ON TABLE person FROM PUBLIC;
606REVOKE ALL ON TABLE person FROM dkg;
607GRANT ALL ON TABLE person TO dkg;
608GRANT INSERT,SELECT,UPDATE ON TABLE person TO "www-data";
609
610
611--
612-- Name: person_id_seq; Type: ACL; Schema: public; Owner: dkg
613--
614
615REVOKE ALL ON TABLE person_id_seq FROM PUBLIC;
616REVOKE ALL ON TABLE person_id_seq FROM dkg;
617GRANT ALL ON TABLE person_id_seq TO dkg;
618GRANT SELECT,UPDATE ON TABLE person_id_seq TO "www-data";
619
620
621--
622-- Name: person_privilege; Type: ACL; Schema: public; Owner: dkg
623--
624
625REVOKE ALL ON TABLE person_privilege FROM PUBLIC;
626REVOKE ALL ON TABLE person_privilege FROM dkg;
627GRANT ALL ON TABLE person_privilege TO dkg;
628GRANT SELECT ON TABLE person_privilege TO "www-data";
629
630
631--
632-- Name: presenter; Type: ACL; Schema: public; Owner: dkg
633--
634
635REVOKE ALL ON TABLE presenter FROM PUBLIC;
636REVOKE ALL ON TABLE presenter FROM dkg;
637GRANT ALL ON TABLE presenter TO dkg;
638GRANT SELECT ON TABLE presenter TO "www-data";
639
640
641--
642-- Name: privilege; Type: ACL; Schema: public; Owner: dkg
643--
644
645REVOKE ALL ON TABLE privilege FROM PUBLIC;
646REVOKE ALL ON TABLE privilege FROM dkg;
647GRANT ALL ON TABLE privilege TO dkg;
648GRANT SELECT ON TABLE privilege TO "www-data";
649
650
651--
652-- Name: room; Type: ACL; Schema: public; Owner: dkg
653--
654
655REVOKE ALL ON TABLE room FROM PUBLIC;
656REVOKE ALL ON TABLE room FROM dkg;
657GRANT ALL ON TABLE room TO dkg;
658GRANT INSERT,SELECT,UPDATE,DELETE ON TABLE room TO "www-data";
659
660
661--
662-- Name: room_id_seq; Type: ACL; Schema: public; Owner: dkg
663--
664
665REVOKE ALL ON TABLE room_id_seq FROM PUBLIC;
666REVOKE ALL ON TABLE room_id_seq FROM dkg;
667GRANT ALL ON TABLE room_id_seq TO dkg;
668GRANT SELECT,UPDATE ON TABLE room_id_seq TO "www-data";
669
670
671--
672-- Name: workshop; Type: ACL; Schema: public; Owner: dkg
673--
674
675REVOKE ALL ON TABLE workshop FROM PUBLIC;
676REVOKE ALL ON TABLE workshop FROM dkg;
677GRANT ALL ON TABLE workshop TO dkg;
678GRANT INSERT,SELECT,UPDATE ON TABLE workshop TO "www-data";
679
680
681--
682-- Name: workshop_category; Type: ACL; Schema: public; Owner: dkg
683--
684
685REVOKE ALL ON TABLE workshop_category FROM PUBLIC;
686REVOKE ALL ON TABLE workshop_category FROM dkg;
687GRANT ALL ON TABLE workshop_category TO dkg;
688GRANT INSERT,SELECT,DELETE ON TABLE workshop_category TO "www-data";
689
690
691--
692-- Name: workshop_id_seq; Type: ACL; Schema: public; Owner: dkg
693--
694
695REVOKE ALL ON TABLE workshop_id_seq FROM PUBLIC;
696REVOKE ALL ON TABLE workshop_id_seq FROM dkg;
697GRANT ALL ON TABLE workshop_id_seq TO dkg;
698GRANT SELECT,UPDATE ON TABLE workshop_id_seq TO "www-data";
699
700
701--
702-- PostgreSQL database dump complete
703--
704
Note: See TracBrowser for help on using the repository browser.