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;