alecpl
2011-05-13 b91215825f4ce8817f342392873794ff85a4ce48
commit | author | age
e019f2 1 -- Roundcube Webmail update script for SQLite databases
ac26b9 2 -- Updates from version 0.1-stable to 0.1.1
f7bfec 3
T 4 DROP TABLE messages;
5
6 CREATE TABLE messages (
7   message_id integer NOT NULL PRIMARY KEY,
8   user_id integer NOT NULL default '0',
9   del tinyint NOT NULL default '0',
10   cache_key varchar(128) NOT NULL default '',
11   created datetime NOT NULL default '0000-00-00 00:00:00',
12   idx integer NOT NULL default '0',
13   uid integer NOT NULL default '0',
14   subject varchar(255) NOT NULL default '',
15   "from" varchar(255) NOT NULL default '',
16   "to" varchar(255) NOT NULL default '',
ac26b9 17   "cc" varchar(255) NOT NULL default '',
T 18   "date" datetime NOT NULL default '0000-00-00 00:00:00',
f7bfec 19   size integer NOT NULL default '0',
T 20   headers text NOT NULL,
21   structure text
22 );
23
ac26b9 24 CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
6cb778 25 CREATE INDEX ix_users_username ON users(username);
A 26 CREATE INDEX ix_users_alias ON users(alias);
c98f3b 27
A 28 -- Updates from version 0.2-alpha
29
30 CREATE INDEX ix_messages_created ON messages (created);
3e48d2 31
A 32 -- Updates from version 0.2-beta
33
34 CREATE INDEX ix_session_changed ON session (changed);
e4d9f0 35 CREATE INDEX ix_cache_created ON cache (created);
3d601d 36
A 37 -- Updates from version 0.3-stable
38
9273c8 39 DELETE FROM messages;
3d601d 40 DROP INDEX ix_messages_user_cache_uid;
A 41 CREATE UNIQUE INDEX ix_messages_user_cache_uid ON messages (user_id,cache_key,uid);
42 CREATE INDEX ix_messages_index ON messages (user_id,cache_key,idx);
23b765 43 DROP INDEX ix_contacts_user_id;
A 44 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
94fe9c 45
A 46 -- Updates from version 0.3.1
47
233622 48 -- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; --
a61bbb 49
233622 50 CREATE TABLE temp_identities (
T 51   identity_id integer NOT NULL PRIMARY KEY,
52   user_id integer NOT NULL default '0',
53   standard tinyint NOT NULL default '0',
54   name varchar(128) NOT NULL default '',
55   organization varchar(128) default '',
56   email varchar(128) NOT NULL default '',
57   "reply-to" varchar(128) NOT NULL default '',
58   bcc varchar(128) NOT NULL default '',
59   signature text NOT NULL default '',
60   html_signature tinyint NOT NULL default '0'
61 );
62 INSERT INTO temp_identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
63   SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
64   FROM identities WHERE del=0;
65
66 DROP INDEX ix_identities_user_id;
67 DROP TABLE identities;
68
69 CREATE TABLE identities (
70   identity_id integer NOT NULL PRIMARY KEY,
71   user_id integer NOT NULL default '0',
72   changed datetime NOT NULL default '0000-00-00 00:00:00',
73   del tinyint NOT NULL default '0',
74   standard tinyint NOT NULL default '0',
75   name varchar(128) NOT NULL default '',
76   organization varchar(128) default '',
77   email varchar(128) NOT NULL default '',
78   "reply-to" varchar(128) NOT NULL default '',
79   bcc varchar(128) NOT NULL default '',
80   signature text NOT NULL default '',
81   html_signature tinyint NOT NULL default '0'
82 );
83 CREATE INDEX ix_identities_user_id ON identities(user_id, del);
84
85 INSERT INTO identities (identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature)
86   SELECT identity_id, user_id, standard, name, organization, email, "reply-to", bcc, signature, html_signature
87   FROM temp_identities;
88
89 DROP TABLE temp_identities;
a35062 90
a61bbb 91 CREATE TABLE contactgroups (
T 92   contactgroup_id integer NOT NULL PRIMARY KEY,
93   user_id integer NOT NULL default '0',
94   changed datetime NOT NULL default '0000-00-00 00:00:00',
95   del tinyint NOT NULL default '0',
96   name varchar(128) NOT NULL default ''
97 );
98
99 CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
100
101 CREATE TABLE contactgroupmembers (
102   contactgroup_id integer NOT NULL,
103   contact_id integer NOT NULL default '0',
104   created datetime NOT NULL default '0000-00-00 00:00:00',
105   PRIMARY KEY (contactgroup_id, contact_id)
106 );
107
e2402e 108 -- Updates from version 0.3.1
A 109
110 CREATE TABLE tmp_users (
111   user_id integer NOT NULL PRIMARY KEY,
112   username varchar(128) NOT NULL default '',
113   mail_host varchar(128) NOT NULL default '',
114   alias varchar(128) NOT NULL default '',
115   created datetime NOT NULL default '0000-00-00 00:00:00',
116   last_login datetime NOT NULL default '0000-00-00 00:00:00',
117   language varchar(5),
118   preferences text NOT NULL default ''
119 );
120
121 INSERT INTO tmp_users (user_id, username, mail_host, alias, created, last_login, language, preferences)
122     SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM users;
123
124 DROP TABLE users;
125
126 CREATE TABLE users (
127   user_id integer NOT NULL PRIMARY KEY,
128   username varchar(128) NOT NULL default '',
129   mail_host varchar(128) NOT NULL default '',
130   alias varchar(128) NOT NULL default '',
131   created datetime NOT NULL default '0000-00-00 00:00:00',
132   last_login datetime DEFAULT NULL,
133   language varchar(5),
134   preferences text NOT NULL default ''
135 );
136
137 INSERT INTO users (user_id, username, mail_host, alias, created, last_login, language, preferences)
138     SELECT user_id, username, mail_host, alias, created, last_login, language, preferences FROM tmp_users;
139
140 CREATE INDEX ix_users_username ON users(username);
141 CREATE INDEX ix_users_alias ON users(alias);
142 DROP TABLE tmp_users;
ace511 143
A 144 -- Updates from version 0.4.2
145
146 DROP INDEX ix_users_username;
147 CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
148
6f0968 149 CREATE TABLE contacts_tmp (
A 150     contact_id integer NOT NULL PRIMARY KEY,
151     user_id integer NOT NULL default '0',
152     changed datetime NOT NULL default '0000-00-00 00:00:00',
153     del tinyint NOT NULL default '0',
154     name varchar(128) NOT NULL default '',
155     email varchar(255) NOT NULL default '',
156     firstname varchar(128) NOT NULL default '',
157     surname varchar(128) NOT NULL default '',
158     vcard text NOT NULL default ''
159 );
160
161 INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
162     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
163
164 DROP TABLE contacts;
165 CREATE TABLE contacts (
166     contact_id integer NOT NULL PRIMARY KEY,
167     user_id integer NOT NULL default '0',
168     changed datetime NOT NULL default '0000-00-00 00:00:00',
169     del tinyint NOT NULL default '0',
170     name varchar(128) NOT NULL default '',
171     email varchar(255) NOT NULL default '',
172     firstname varchar(128) NOT NULL default '',
173     surname varchar(128) NOT NULL default '',
174     vcard text NOT NULL default ''
175 );
176
177 INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
178     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
179
180 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
181 DROP TABLE contacts_tmp;
182
cdb8b9 183 DELETE FROM messages;
T 184
3e2637 185
d08333 186 -- Updates from version 0.5.2
3e2637 187
T 188 CREATE TABLE contacts_tmp (
189     contact_id integer NOT NULL PRIMARY KEY,
190     user_id integer NOT NULL default '0',
191     changed datetime NOT NULL default '0000-00-00 00:00:00',
192     del tinyint NOT NULL default '0',
193     name varchar(128) NOT NULL default '',
194     email varchar(255) NOT NULL default '',
195     firstname varchar(128) NOT NULL default '',
196     surname varchar(128) NOT NULL default '',
197     vcard text NOT NULL default ''
198 );
199
200 INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
201     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
202
203 DROP TABLE contacts;
204 CREATE TABLE contacts (
205     contact_id integer NOT NULL PRIMARY KEY,
206     user_id integer NOT NULL default '0',
207     changed datetime NOT NULL default '0000-00-00 00:00:00',
208     del tinyint NOT NULL default '0',
209     name varchar(128) NOT NULL default '',
210     email varchar(255) NOT NULL default '',
211     firstname varchar(128) NOT NULL default '',
212     surname varchar(128) NOT NULL default '',
213     vcard text NOT NULL default '',
214     words text NOT NULL default ''
215 );
216
217 INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
218     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
219
220 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
221 DROP TABLE contacts_tmp;
222
223 DELETE FROM messages;
d08333 224 DELETE FROM cache;
3a5476 225 CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);