]> git.donarmstrong.com Git - roundcube.git/blob - SQL/sqlite.update.sql
Imported Upstream version 0.7
[roundcube.git] / SQL / sqlite.update.sql
1 -- Roundcube Webmail update script for SQLite databases
2 -- Updates from version 0.1-stable to 0.1.1
3
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 '',
17   "cc" varchar(255) NOT NULL default '',
18   "date" datetime NOT NULL default '0000-00-00 00:00:00',
19   size integer NOT NULL default '0',
20   headers text NOT NULL,
21   structure text
22 );
23
24 CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
25 CREATE INDEX ix_users_username ON users(username);
26 CREATE INDEX ix_users_alias ON users(alias);
27
28 -- Updates from version 0.2-alpha
29
30 CREATE INDEX ix_messages_created ON messages (created);
31
32 -- Updates from version 0.2-beta
33
34 CREATE INDEX ix_session_changed ON session (changed);
35 CREATE INDEX ix_cache_created ON cache (created);
36
37 -- Updates from version 0.3-stable
38
39 DELETE FROM messages;
40 DROP INDEX ix_messages_user_cache_uid;
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);
43 DROP INDEX ix_contacts_user_id;
44 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
45
46 -- Updates from version 0.3.1
47
48 -- ALTER TABLE identities ADD COLUMN changed datetime NOT NULL default '0000-00-00 00:00:00'; --
49
50 CREATE TABLE temp_identities (
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;
90
91 CREATE TABLE contactgroups (
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
108 -- Updates from version 0.3.1
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;
143
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
149 CREATE TABLE contacts_tmp (
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
183 DELETE FROM messages;
184
185
186 -- Updates from version 0.5.1
187 -- Updates from version 0.5.2
188 -- Updates from version 0.5.3
189 -- Updates from version 0.5.4
190
191 CREATE TABLE contacts_tmp (
192     contact_id integer NOT NULL PRIMARY KEY,
193     user_id integer NOT NULL default '0',
194     changed datetime NOT NULL default '0000-00-00 00:00:00',
195     del tinyint NOT NULL default '0',
196     name varchar(128) NOT NULL default '',
197     email varchar(255) NOT NULL default '',
198     firstname varchar(128) NOT NULL default '',
199     surname varchar(128) NOT NULL default '',
200     vcard text NOT NULL default ''
201 );
202
203 INSERT INTO contacts_tmp (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
204     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts;
205
206 DROP TABLE contacts;
207 CREATE TABLE contacts (
208     contact_id integer NOT NULL PRIMARY KEY,
209     user_id integer NOT NULL default '0',
210     changed datetime NOT NULL default '0000-00-00 00:00:00',
211     del tinyint NOT NULL default '0',
212     name varchar(128) NOT NULL default '',
213     email varchar(255) NOT NULL default '',
214     firstname varchar(128) NOT NULL default '',
215     surname varchar(128) NOT NULL default '',
216     vcard text NOT NULL default '',
217     words text NOT NULL default ''
218 );
219
220 INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname, surname, vcard)
221     SELECT contact_id, user_id, changed, del, name, email, firstname, surname, vcard FROM contacts_tmp;
222
223 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
224 DROP TABLE contacts_tmp;
225
226
227 DELETE FROM messages;
228 DELETE FROM cache;
229 CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);
230
231 -- Updates from version 0.6
232
233 CREATE TABLE dictionary (
234     user_id integer DEFAULT NULL,
235    "language" varchar(5) NOT NULL,
236     data text NOT NULL
237 );
238
239 CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
240
241 CREATE TABLE searches (
242   search_id integer NOT NULL PRIMARY KEY,
243   user_id integer NOT NULL DEFAULT '0',
244   "type" smallint NOT NULL DEFAULT '0',
245   name varchar(128) NOT NULL,
246   data text NOT NULL
247 );
248
249 CREATE UNIQUE INDEX ix_searches_user_type_name (user_id, type, name);
250
251 DROP TABLE messages;
252
253 CREATE TABLE cache_index (
254     user_id integer NOT NULL,
255     mailbox varchar(255) NOT NULL,
256     changed datetime NOT NULL default '0000-00-00 00:00:00',
257     valid smallint NOT NULL DEFAULT '0',
258     data text NOT NULL,
259     PRIMARY KEY (user_id, mailbox)
260 );
261
262 CREATE INDEX ix_cache_index_changed ON cache_index (changed);
263
264 CREATE TABLE cache_thread (
265     user_id integer NOT NULL,
266     mailbox varchar(255) NOT NULL,
267     changed datetime NOT NULL default '0000-00-00 00:00:00',
268     data text NOT NULL,
269     PRIMARY KEY (user_id, mailbox)
270 );
271
272 CREATE INDEX ix_cache_thread_changed ON cache_thread (changed);
273
274 CREATE TABLE cache_messages (
275     user_id integer NOT NULL,
276     mailbox varchar(255) NOT NULL,
277     uid integer NOT NULL,
278     changed datetime NOT NULL default '0000-00-00 00:00:00',
279     data text NOT NULL,
280     flags integer NOT NULL DEFAULT '0',
281     PRIMARY KEY (user_id, mailbox, uid)
282 );
283
284 CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);
285
286 -- Updates from version 0.7-beta
287
288 DROP TABLE session;
289 CREATE TABLE session (
290   sess_id varchar(128) NOT NULL PRIMARY KEY,
291   created datetime NOT NULL default '0000-00-00 00:00:00',
292   changed datetime NOT NULL default '0000-00-00 00:00:00',
293   ip varchar(40) NOT NULL default '',
294   vars text NOT NULL
295 );
296
297 CREATE INDEX ix_session_changed ON session (changed);