source: subversion/branches/release-0.5/SQL/postgres.update.sql @ 4469

Last change on this file since 4469 was 4469, checked in by thomasb, 2 years ago

Apply bug fixes and localization updated from trunk for release 0.5.1

File size: 3.3 KB
Line 
1-- Roundcube Webmail update script for Postgres databases
2-- Updates from version 0.1-stable to 0.1.1
3
4CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
5CREATE INDEX contacts_user_id_idx ON contacts (user_id);
6CREATE INDEX identities_user_id_idx ON identities (user_id);
7
8CREATE INDEX users_username_id_idx ON users (username);
9CREATE INDEX users_alias_id_idx ON users (alias);
10
11-- added ON DELETE/UPDATE actions
12ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
13ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
14ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
15ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
16ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
17ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
18ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
19ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
20
21-- Updates from version 0.2-alpha
22
23CREATE INDEX messages_created_idx ON messages (created);
24
25-- Updates from version 0.2-beta
26
27ALTER TABLE cache DROP session_id;
28
29CREATE INDEX session_changed_idx ON session (changed);
30CREATE INDEX cache_created_idx ON "cache" (created);
31
32ALTER TABLE users ALTER "language" DROP NOT NULL;
33ALTER TABLE users ALTER "language" DROP DEFAULT;
34
35ALTER TABLE identities ALTER del TYPE smallint;
36ALTER TABLE identities ALTER standard TYPE smallint;
37ALTER TABLE contacts ALTER del TYPE smallint;
38ALTER TABLE messages ALTER del TYPE smallint;
39
40-- Updates from version 0.3-stable
41
42TRUNCATE messages;
43CREATE INDEX messages_index_idx ON messages (user_id, cache_key, idx);
44DROP INDEX contacts_user_id_idx;
45CREATE INDEX contacts_user_id_idx ON contacts (user_id, email);
46
47-- Updates from version 0.3.1
48
49DROP INDEX identities_user_id_idx;
50CREATE INDEX identities_user_id_idx ON identities (user_id, del);
51
52ALTER TABLE identities ADD changed timestamp with time zone DEFAULT now() NOT NULL;
53
54CREATE SEQUENCE contactgroups_ids
55    INCREMENT BY 1
56    NO MAXVALUE
57    NO MINVALUE
58    CACHE 1;
59
60CREATE TABLE contactgroups (
61    contactgroup_id integer DEFAULT nextval('contactgroups_ids'::text) PRIMARY KEY,
62    user_id     integer         NOT NULL
63        REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
64    changed     timestamp with time zone DEFAULT now() NOT NULL,
65    del         smallint        NOT NULL DEFAULT 0,
66    name        varchar(128)    NOT NULL DEFAULT ''
67);
68
69CREATE INDEX contactgroups_user_id_idx ON contactgroups (user_id, del);
70
71CREATE TABLE contactgroupmembers (
72    contactgroup_id     integer NOT NULL
73        REFERENCES contactgroups(contactgroup_id) ON DELETE CASCADE ON UPDATE CASCADE,
74    contact_id          integer NOT NULL
75        REFERENCES contacts(contact_id) ON DELETE CASCADE ON UPDATE CASCADE,
76    created timestamp with time zone DEFAULT now() NOT NULL,
77    PRIMARY KEY (contactgroup_id, contact_id)
78);
79
80-- Updates from version 0.4-beta
81
82ALTER TABLE users ALTER last_login DROP NOT NULL;
83ALTER TABLE users ALTER last_login SET DEFAULT NULL;
84
85-- Updates from version 0.4.2
86
87DROP INDEX users_username_id_idx;
88ALTER TABLE users ADD UNIQUE (username, mail_host);
89ALTER TABLE contacts ALTER email TYPE varchar(255);
90
91TRUNCATE messages;
Note: See TracBrowser for help on using the repository browser.