Fix database patches so they work.

This commit is contained in:
Andrew McMillan 2009-11-05 17:16:00 +13:00
parent 8938b7d0fd
commit a100244106
2 changed files with 12 additions and 11 deletions

View File

@ -68,6 +68,16 @@ LANGUAGE 'PlPgSQL' IMMUTABLE STRICT;
-- This sequence is used in a number of places so that any DAV resource will have a unique ID
CREATE SEQUENCE dav_id_seq;
-- Not particularly needed, perhaps, except as a way to collect
-- a bunch of valid iCalendar time zone specifications... :-)
CREATE TABLE time_zone (
tz_id TEXT PRIMARY KEY,
tz_locn TEXT,
tz_spec TEXT
);
-- Something that can look like a filesystem hierarchy where we store stuff
CREATE TABLE collection (
user_no INT references usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE,
@ -86,7 +96,7 @@ CREATE TABLE collection (
resourcetypes TEXT DEFAULT '<DAV::collection/>',
in_freebusy_set BOOLEAN DEFAULT TRUE,
schedule_transp TEXT DEFAULT 'opaque',
timezone TEXT REFERENCES timezones('tz_id') ON DELETE RESTRICT ON UPDATE CASCADE,
timezone TEXT REFERENCES time_zone(tz_id) ON DELETE SET NULL ON UPDATE CASCADE,
description TEXT DEFAULT '',
UNIQUE(user_no,dav_name)
);
@ -109,15 +119,6 @@ CREATE TABLE caldav_data (
);
CREATE INDEX caldav_data_collection_id_fkey ON caldav_data(collection_id);
-- Not particularly needed, perhaps, except as a way to collect
-- a bunch of valid iCalendar time zone specifications... :-)
CREATE TABLE time_zone (
tz_id TEXT PRIMARY KEY,
tz_locn TEXT,
tz_spec TEXT
);
-- The parsed calendar item. Here we have pulled those events/todos/journals apart somewhat.
CREATE TABLE calendar_item (
user_no INT references usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE,

View File

@ -25,7 +25,7 @@ ALTER TABLE collection ADD COLUMN is_addressbook BOOLEAN DEFAULT FALSE;
ALTER TABLE collection ADD COLUMN resourcetypes TEXT DEFAULT '<DAV::collection/>';
ALTER TABLE collection ADD COLUMN in_freebusy_set BOOLEAN DEFAULT TRUE;
ALTER TABLE collection ADD COLUMN schedule_transp TEXT DEFAULT 'opaque';
ALTER TABLE collection ADD COLUMN timezone TEXT REFERENCES timezones('tz_id') ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE collection ADD COLUMN timezone TEXT REFERENCES time_zone(tz_id) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE collection ADD COLUMN description TEXT DEFAULT '';
UPDATE collection SET resourcetypes = '<DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/>' WHERE is_calendar;