]> git.donarmstrong.com Git - roundcube.git/blob - SQL/mssql.upgrade.sql
Imported Upstream version 0.7
[roundcube.git] / SQL / mssql.upgrade.sql
1 -- Roundcube Webmail update script for MSSQL databases\r
2 \r
3 -- Updates from version 0.3.1\r
4 \r
5 ALTER TABLE [dbo].[messages] ADD CONSTRAINT [FK_messages_user_id]\r
6     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
7     ON DELETE CASCADE ON UPDATE CASCADE\r
8 GO\r
9 \r
10 ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]\r
11     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
12     ON DELETE CASCADE ON UPDATE CASCADE\r
13 GO\r
14 \r
15 ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]\r
16     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
17     ON DELETE CASCADE ON UPDATE CASCADE\r
18 GO\r
19 \r
20 ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id] \r
21     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
22     ON DELETE CASCADE ON UPDATE CASCADE\r
23 GO\r
24 \r
25 ALTER TABLE [dbo].[identities] ADD [changed] [datetime] NULL \r
26 GO\r
27 \r
28 CREATE TABLE [dbo].[contactgroups] (\r
29         [contactgroup_id] [int] IDENTITY (1, 1) NOT NULL ,\r
30         [user_id] [int] NOT NULL ,\r
31         [changed] [datetime] NOT NULL ,\r
32         [del] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,\r
33         [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL\r
34 ) ON [PRIMARY] \r
35 GO\r
36 \r
37 CREATE TABLE [dbo].[contactgroupmembers] (\r
38         [contactgroup_id] [int] NOT NULL ,\r
39         [contact_id] [int] NOT NULL ,\r
40         [created] [datetime] NOT NULL\r
41 ) ON [PRIMARY] \r
42 GO\r
43 \r
44 ALTER TABLE [dbo].[contactgroups] WITH NOCHECK ADD \r
45         CONSTRAINT [PK_contactgroups_contactgroup_id] PRIMARY KEY CLUSTERED \r
46         (\r
47                 [contactgroup_id]\r
48         )  ON [PRIMARY] \r
49 GO\r
50 \r
51 ALTER TABLE [dbo].[contactgroupmembers] WITH NOCHECK ADD \r
52         CONSTRAINT [PK_contactgroupmembers_id] PRIMARY KEY CLUSTERED \r
53         (\r
54                 [contactgroup_id], [contact_id]\r
55         )  ON [PRIMARY] \r
56 GO\r
57 \r
58 ALTER TABLE [dbo].[contactgroups] ADD \r
59         CONSTRAINT [DF_contactgroups_user_id] DEFAULT (0) FOR [user_id],\r
60         CONSTRAINT [DF_contactgroups_changed] DEFAULT (getdate()) FOR [changed],\r
61         CONSTRAINT [DF_contactgroups_del] DEFAULT ('0') FOR [del],\r
62         CONSTRAINT [DF_contactgroups_name] DEFAULT ('') FOR [name],\r
63         CONSTRAINT [CK_contactgroups_del] CHECK ([del] = '1' or [del] = '0')\r
64 GO\r
65 \r
66 CREATE  INDEX [IX_contactgroups_user_id] ON [dbo].[contacts]([user_id]) ON [PRIMARY]\r
67 GO\r
68 \r
69 ALTER TABLE [dbo].[contactgroupmembers] ADD \r
70         CONSTRAINT [DF_contactgroupmembers_contactgroup_id] DEFAULT (0) FOR [contactgroup_id],\r
71         CONSTRAINT [DF_contactgroupmembers_contact_id] DEFAULT (0) FOR [contact_id],\r
72         CONSTRAINT [DF_contactgroupmembers_created] DEFAULT (getdate()) FOR [created]\r
73 GO\r
74 \r
75 ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]\r
76     FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])\r
77     ON DELETE CASCADE ON UPDATE CASCADE\r
78 GO\r
79 \r
80 CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]\r
81     AFTER DELETE AS\r
82     DELETE FROM [dbo].[contactgroupmembers]\r
83     WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)\r
84 GO\r
85 \r
86 ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]\r
87     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
88     ON DELETE CASCADE ON UPDATE CASCADE\r
89 GO\r
90 \r
91 -- Updates from version 0.4.2\r
92 \r
93 DROP INDEX [IX_users_username]\r
94 GO\r
95 CREATE UNIQUE INDEX [IX_users_username] ON [dbo].[users]([username],[mail_host]) ON [PRIMARY]\r
96 GO\r
97 ALTER TABLE [dbo].[contacts] ALTER COLUMN [email] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL\r
98 GO\r
99 \r
100 -- Updates from version 0.5.1\r
101 -- Updates from version 0.5.2\r
102 -- Updates from version 0.5.3\r
103 -- Updates from version 0.5.4\r
104 \r
105 ALTER TABLE [dbo].[contacts] ADD [words] [text] COLLATE Latin1_General_CI_AI NULL \r
106 GO\r
107 CREATE INDEX [IX_contactgroupmembers_contact_id] ON [dbo].[contactgroupmembers]([contact_id]) ON [PRIMARY]\r
108 GO\r
109 DELETE FROM [dbo].[messages]\r
110 GO\r
111 DELETE FROM [dbo].[cache]\r
112 GO\r
113 \r
114 -- Updates from version 0.6\r
115 \r
116 CREATE TABLE [dbo].[dictionary] (\r
117     [user_id] [int] ,\r
118     [language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,\r
119     [data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
120 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
121 GO\r
122 CREATE  UNIQUE INDEX [IX_dictionary_user_language] ON [dbo].[dictionary]([user_id],[language]) ON [PRIMARY]\r
123 GO\r
124 \r
125 CREATE TABLE [dbo].[searches] (\r
126         [search_id] [int] IDENTITY (1, 1) NOT NULL ,\r
127         [user_id] [int] NOT NULL ,\r
128         [type] [tinyint] NOT NULL ,\r
129         [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
130         [data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
131 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
132 GO\r
133 \r
134 ALTER TABLE [dbo].[searches] WITH NOCHECK ADD \r
135         CONSTRAINT [PK_searches_search_id] PRIMARY KEY CLUSTERED \r
136         (\r
137                 [search_id]\r
138         ) ON [PRIMARY] \r
139 GO\r
140 \r
141 ALTER TABLE [dbo].[searches] ADD \r
142         CONSTRAINT [DF_searches_user] DEFAULT (0) FOR [user_id],\r
143         CONSTRAINT [DF_searches_type] DEFAULT (0) FOR [type],\r
144 GO\r
145 \r
146 CREATE UNIQUE INDEX [IX_searches_user_type_name] ON [dbo].[searches]([user_id],[type],[name]) ON [PRIMARY]\r
147 GO\r
148 \r
149 ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]\r
150     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
151     ON DELETE CASCADE ON UPDATE CASCADE\r
152 GO\r
153 \r
154 DROP TABLE [dbo].[messages]\r
155 GO\r
156 CREATE TABLE [dbo].[cache_index] (\r
157         [user_id] [int] NOT NULL ,\r
158         [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
159         [changed] [datetime] NOT NULL ,\r
160         [valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL ,\r
161         [data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
162 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
163 GO\r
164 \r
165 CREATE TABLE [dbo].[cache_thread] (\r
166         [user_id] [int] NOT NULL ,\r
167         [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
168         [changed] [datetime] NOT NULL ,\r
169         [data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
170 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
171 GO\r
172 \r
173 CREATE TABLE [dbo].[cache_messages] (\r
174         [user_id] [int] NOT NULL ,\r
175         [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
176         [uid] [int] NOT NULL ,\r
177         [changed] [datetime] NOT NULL ,\r
178         [data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
179         [flags] [int] NOT NULL ,\r
180 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
181 GO\r
182 \r
183 ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD \r
184          PRIMARY KEY CLUSTERED \r
185         (\r
186                 [user_id],[mailbox]\r
187         ) ON [PRIMARY] \r
188 GO\r
189 \r
190 ALTER TABLE [dbo].[cache_thread] WITH NOCHECK ADD \r
191          PRIMARY KEY CLUSTERED \r
192         (\r
193                 [user_id],[mailbox]\r
194         ) ON [PRIMARY] \r
195 GO\r
196 \r
197 ALTER TABLE [dbo].[cache_messages] WITH NOCHECK ADD \r
198          PRIMARY KEY CLUSTERED \r
199         (\r
200                 [user_id],[mailbox],[uid]\r
201         ) ON [PRIMARY] \r
202 GO\r
203 \r
204 ALTER TABLE [dbo].[cache_index] ADD \r
205         CONSTRAINT [DF_cache_index_changed] DEFAULT (getdate()) FOR [changed],\r
206         CONSTRAINT [DF_cache_index_valid] DEFAULT ('0') FOR [valid]\r
207 GO\r
208 \r
209 CREATE  INDEX [IX_cache_index_user_id] ON [dbo].[cache_index]([user_id]) ON [PRIMARY]\r
210 GO\r
211 \r
212 ALTER TABLE [dbo].[cache_thread] ADD \r
213         CONSTRAINT [DF_cache_thread_changed] DEFAULT (getdate()) FOR [changed]\r
214 GO\r
215 \r
216 CREATE  INDEX [IX_cache_thread_user_id] ON [dbo].[cache_thread]([user_id]) ON [PRIMARY]\r
217 GO\r
218 \r
219 ALTER TABLE [dbo].[cache_messages] ADD \r
220         CONSTRAINT [DF_cache_messages_changed] DEFAULT (getdate()) FOR [changed],\r
221         CONSTRAINT [DF_cache_messages_flags] DEFAULT (0) FOR [flags]\r
222 GO\r
223 \r
224 CREATE  INDEX [IX_cache_messages_user_id] ON [dbo].[cache_messages]([user_id]) ON [PRIMARY]\r
225 GO\r
226 \r
227 ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]\r
228     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
229     ON DELETE CASCADE ON UPDATE CASCADE\r
230 GO\r
231 \r
232 ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]\r
233     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
234     ON DELETE CASCADE ON UPDATE CASCADE\r
235 GO\r
236 \r
237 ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]\r
238     FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
239     ON DELETE CASCADE ON UPDATE CASCADE\r
240 GO\r
241 \r
242 -- Updates from version 0.7-beta
243
244 ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL
245 GO
246