From 10ea10a3177fb59caac13adc44cfbc4b5e6ff8dd Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 20 May 2011 14:35:08 -0400
Subject: [PATCH] Catch write-errors on database (yet untested)

---
 SQL/postgres.update.sql |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql
index 0b926d5..d86e56c 100644
--- a/SQL/postgres.update.sql
+++ b/SQL/postgres.update.sql
@@ -1,4 +1,4 @@
--- RoundCube Webmail update script for Postgres databases
+-- Roundcube Webmail update script for Postgres databases
 -- Updates from version 0.1-stable to 0.1.1
 
 CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
@@ -48,3 +48,52 @@
 
 DROP INDEX identities_user_id_idx;
 CREATE INDEX identities_user_id_idx ON identities (user_id, del);
+
+ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
+
+CREATE SEQUENCE contactgroups_ids
+    INCREMENT BY 1
+    NO MAXVALUE
+    NO MINVALUE
+    CACHE 1;
+
+CREATE TABLE contactgroups (
+    contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
+    user_id 	integer		NOT NULL
+        REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
+    changed 	timestamp with time zone DEFAULT now() NOT NULL,
+    del 	smallint 	NOT NULL DEFAULT 0,
+    name 	varchar(128) 	NOT NULL DEFAULT ''
+);
+
+CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
+
+CREATE TABLE contactgroupmembers (
+    contactgroup_id 	integer NOT NULL
+	REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
+    contact_id 		integer NOT NULL
+	REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    PRIMARY KEY (contactgroup_id, contact_id)
+);
+
+-- Updates from version 0.4-beta
+
+ALTER TABLE users ALTER last_login DROP NOT NULL;
+ALTER TABLE users ALTER last_login SET DEFAULT NULL;
+
+-- Updates from version 0.4.2
+
+DROP INDEX users_username_id_idx;
+ALTER TABLE users ADD CONSTRAINT users_username_key UNIQUE (username, mail_host);
+ALTER TABLE contacts ALTER email TYPE varchar(255);
+
+TRUNCATE messages;
+
+-- Updates from version 0.5.2
+
+ALTER TABLE contacts ADD words TEXT NULL;
+CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id);
+
+TRUNCATE messages;
+TRUNCATE cache;

--
Gitblit v1.9.1