-ALTER TABLE [dbo].[users] ADD \r
- CONSTRAINT [DF_users_username] DEFAULT ('') FOR [username],\r
- CONSTRAINT [DF_users_mail_host] DEFAULT ('') FOR [mail_host],\r
- CONSTRAINT [DF_users_alias] DEFAULT ('') FOR [alias],\r
- CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created],\r
- CONSTRAINT [DF_users_language] DEFAULT ('en') FOR [language]\r
+ALTER TABLE [dbo].[identities] ADD CONSTRAINT [FK_identities_user_id] \r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[contacts] ADD CONSTRAINT [FK_contacts_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[contactgroups] ADD CONSTRAINT [FK_contactgroups_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[cache] ADD CONSTRAINT [FK_cache_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[cache_index] ADD CONSTRAINT [FK_cache_index_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[cache_thread] ADD CONSTRAINT [FK_cache_thread_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[cache_messages] ADD CONSTRAINT [FK_cache_messages_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[contactgroupmembers] ADD CONSTRAINT [FK_contactgroupmembers_contactgroup_id]\r
+ FOREIGN KEY ([contactgroup_id]) REFERENCES [dbo].[contactgroups] ([contactgroup_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+ALTER TABLE [dbo].[searches] ADD CONSTRAINT [FK_searches_user_id]\r
+ FOREIGN KEY ([user_id]) REFERENCES [dbo].[users] ([user_id])\r
+ ON DELETE CASCADE ON UPDATE CASCADE\r
+GO\r
+\r
+-- Use trigger instead of foreign key (#1487112)\r
+-- "Introducing FOREIGN KEY constraint ... may cause cycles or multiple cascade paths."\r
+CREATE TRIGGER [contact_delete_member] ON [dbo].[contacts]\r
+ AFTER DELETE AS\r
+ DELETE FROM [dbo].[contactgroupmembers]\r
+ WHERE [contact_id] IN (SELECT [contact_id] FROM deleted)\r