]> git.donarmstrong.com Git - roundcube.git/blob - SQL/mssql.upgrade.sql
Imported Upstream version 0.6+dfsg
[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