From a10024410690d96ab14ef5444bc3146e82218d96 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 5 Nov 2009 17:16:00 +1300 Subject: [PATCH] Fix database patches so they work. --- dba/davical.sql | 21 +++++++++++---------- dba/patches/1.2.7.sql | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/dba/davical.sql b/dba/davical.sql index ee84cf45..ef46e718 100644 --- a/dba/davical.sql +++ b/dba/davical.sql @@ -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 '', 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, diff --git a/dba/patches/1.2.7.sql b/dba/patches/1.2.7.sql index b8103886..2dfbc98f 100644 --- a/dba/patches/1.2.7.sql +++ b/dba/patches/1.2.7.sql @@ -25,7 +25,7 @@ ALTER TABLE collection ADD COLUMN is_addressbook BOOLEAN DEFAULT FALSE; ALTER TABLE collection ADD COLUMN resourcetypes TEXT DEFAULT ''; 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 = '' WHERE is_calendar;