source: contrib/davical/dba/patches/1.2.8.sql @ 3733

Revision 3733, 2.9 KB checked in by gabriel.malheiros, 13 years ago (diff)

Ticket #1541 - <Davical customizado para o Expresso.Utiliza Caldav e CardDav?>

Line 
1
2-- This database update adds support for tickets to be handed out to grant
3-- specific access to a collection or individual resource, as read-only or
4-- read-write.  A table is also added to manage WebDAV binding, in line
5-- with http://tools.ietf.org/html/draft-ietf-webdav-bind.
6
7BEGIN;
8SELECT check_db_revision(1,2,7);
9
10ALTER TABLE caldav_data ADD COLUMN weak_etag TEXT DEFAULT NULL;
11ALTER TABLE collection DROP COLUMN in_freebusy_set;
12
13CREATE TABLE access_ticket (
14  ticket_id TEXT PRIMARY KEY,
15  dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
16  privileges BIT(24),
17  target_collection_id INT8 NOT NULL REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
18  target_resource_id INT8 REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
19  expires TIMESTAMP
20);
21
22
23-- At this point we only support binding collections
24CREATE TABLE dav_binding (
25  bind_id INT8 DEFAULT nextval('dav_id_seq') PRIMARY KEY,
26  bound_source_id INT8 REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
27  access_ticket_id TEXT REFERENCES access_ticket(ticket_id) ON UPDATE CASCADE ON DELETE SET NULL,
28  dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
29  parent_container TEXT NOT NULL,
30  dav_name TEXT UNIQUE NOT NULL,
31  dav_displayname TEXT
32);
33
34
35CREATE TABLE addressbook_resource (
36  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE PRIMARY KEY,
37  version TEXT,
38  uid TEXT,
39  nickname TEXT,
40  fn TEXT, -- fullname
41  n TEXT, -- Name Surname;First names
42  note TEXT,
43  org TEXT,
44  url TEXT
45);
46
47CREATE TABLE addressbook_address_adr (
48  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
49  type TEXT,
50  adr TEXT,
51  property TEXT -- The full text of the property
52);
53
54CREATE TABLE addressbook_address_tel (
55  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
56  type TEXT,
57  tel TEXT,
58  property TEXT -- The full text of the property
59);
60
61CREATE TABLE addressbook_address_email (
62  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
63  type TEXT,
64  email TEXT,
65  property TEXT -- The full text of the property
66);
67
68
69CREATE TABLE calendar_alarm (
70  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
71  action TEXT,
72  trigger TEXT,
73  summary TEXT,
74  description TEXT,
75  next_trigger TIMESTAMP WITH TIME ZONE,
76  component TEXT -- The full text of the component
77);
78
79CREATE TABLE calendar_attendee (
80  dav_id INT8 NOT NULL REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
81  status TEXT,
82  partstat TEXT,
83  cn TEXT,
84  attendee TEXT,
85  role TEXT,
86  rsvp BOOLEAN,
87  property TEXT, -- The full text of the property
88  PRIMARY KEY ( dav_id, attendee )
89);
90
91SELECT new_db_revision(1,2,8, 'Août' );
92
93COMMIT;
94ROLLBACK;
95
Note: See TracBrowser for help on using the repository browser.