Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql @ 5402

Last change on this file since 5402 was 5402, checked in by cneumuel, 13 years ago

#1233

  • single sign on with HL
  • local plugins are uploaded if not available online (user can force the useage of local plugins)
  • changed plugin and plugindata db-schema
  • plugin dao tests
File size: 5.6 KB
Line 
1/* this script is supposed to be executed after the plain DB is generated by the linq-to-sql schema */
2
3/* use these DROP commands if you want to run this query a second time on the same db */
4
5/*
6ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId DROP ROWGUIDCOL;
7ALTER TABLE dbo.Job ALTER COLUMN JobId DROP ROWGUIDCOL;
8ALTER TABLE dbo.SlaveGroup_Resource ALTER COLUMN SlaveGroup_RessourceId DROP ROWGUIDCOL;
9ALTER TABLE dbo.Plugin ALTER COLUMN PluginId DROP ROWGUIDCOL;
10ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId DROP ROWGUIDCOL;
11ALTER TABLE dbo.Resource ALTER COLUMN ResourceId DROP ROWGUIDCOL;
12ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId DROP ROWGUIDCOL;
13ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId DROP ROWGUIDCOL;
14
15ALTER TABLE dbo.AssignedResources DROP CONSTRAINT [DF_AssignedResources_AssignedRessourcesId];
16ALTER TABLE dbo.Job DROP CONSTRAINT [DF_Job_JobId];
17ALTER TABLE dbo.SlaveGroup_Resource DROP CONSTRAINT [DF_SlaveGroup_ResourceSlaveGroup_RessourceId];
18ALTER TABLE dbo.Plugin DROP CONSTRAINT [DF_Plugin_PluginId];
19ALTER TABLE dbo.RequiredPlugins DROP CONSTRAINT [DF_RequiredPlugins_RequiredPluginId];
20ALTER TABLE dbo.Resource DROP CONSTRAINT [DF_Resource_ResourceId];
21ALTER TABLE dbo.UptimeCalendar DROP CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId];
22ALTER TABLE dbo.HiveExperiment DROP CONSTRAINT [DF_HiveExperiment_HiveExperimentId];
23*/
24
25ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId ADD ROWGUIDCOL;
26ALTER TABLE dbo.AssignedResources WITH NOCHECK ADD CONSTRAINT [DF_AssignedResources_AssignedRessourcesId] DEFAULT (newid()) FOR AssignedRessourcesId;
27ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Job_AssignedResource]
28ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Job_AssignedResource] FOREIGN KEY([JobId])
29REFERENCES [dbo].[Job] ([JobId])
30ON UPDATE CASCADE
31ON DELETE CASCADE
32GO
33ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Resource_AssignedResource]
34ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Resource_AssignedResource] FOREIGN KEY([ResourceId])
35REFERENCES [dbo].[Resource] ([ResourceId])
36ON UPDATE CASCADE
37ON DELETE CASCADE
38GO
39
40ALTER TABLE dbo.Job ALTER COLUMN JobId ADD ROWGUIDCOL;
41ALTER TABLE dbo.Job WITH NOCHECK ADD CONSTRAINT [DF_Job_JobId] DEFAULT (newid()) FOR JobId;
42
43ALTER TABLE dbo.Plugin ALTER COLUMN PluginId ADD ROWGUIDCOL;
44ALTER TABLE dbo.Plugin WITH NOCHECK ADD CONSTRAINT [DF_Plugin_PluginId] DEFAULT (newid()) FOR PluginId;
45
46ALTER TABLE dbo.PluginData ALTER COLUMN PluginDataId ADD ROWGUIDCOL;
47ALTER TABLE dbo.PluginData WITH NOCHECK ADD CONSTRAINT [DF_PluginData_PluginDataId] DEFAULT (newid()) FOR PluginDataId;
48
49ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId ADD ROWGUIDCOL;
50ALTER TABLE dbo.RequiredPlugins WITH NOCHECK ADD CONSTRAINT [DF_RequiredPlugins_RequiredPluginId] DEFAULT (newid()) FOR RequiredPluginId;
51
52ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Job_RequiredPlugin]
53ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Job_RequiredPlugin] FOREIGN KEY([JobId])
54REFERENCES [dbo].[Job] ([JobId])
55ON UPDATE CASCADE
56ON DELETE CASCADE
57GO
58
59ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Plugin_RequiredPlugin]
60ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Plugin_RequiredPlugin] FOREIGN KEY([PluginId])
61REFERENCES [dbo].[Plugin] ([PluginId])
62ON UPDATE CASCADE
63ON DELETE CASCADE
64GO
65
66ALTER TABLE dbo.Resource ALTER COLUMN ResourceId ADD ROWGUIDCOL;
67ALTER TABLE dbo.Resource WITH NOCHECK ADD CONSTRAINT [DF_Resource_ResourceId] DEFAULT (newid()) FOR ResourceId;
68
69ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId ADD ROWGUIDCOL;
70ALTER TABLE dbo.UptimeCalendar WITH NOCHECK ADD CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId] DEFAULT (newid()) FOR UptimeCalendarId;
71
72ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId ADD ROWGUIDCOL;
73ALTER TABLE dbo.HiveExperiment WITH NOCHECK ADD CONSTRAINT [DF_HiveExperiment_HiveExperimentId] DEFAULT (newid()) FOR HiveExperimentId;
74
75/* create indices */
76CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId);
77
78/* triggers */
79SET ANSI_NULLS ON
80GO
81SET QUOTED_IDENTIFIER ON
82GO
83-- =============================================
84-- Author:    cneumuel
85-- Create date: 11.11.2010
86-- Description: Deletes the root-job of the experiment when experiment is deleted
87-- =============================================
88CREATE TRIGGER [dbo].[tr_HiveExperimentDeleteCascade] ON [dbo].[HiveExperiment] FOR DELETE AS
89SET NOCOUNT ON
90DELETE Job FROM deleted, Job WHERE Job.JobId = deleted.RootJobId
91GO
92
93SET ANSI_NULLS ON
94GO
95SET QUOTED_IDENTIFIER ON
96GO
97-- =============================================
98-- Author:    cneumuel
99-- Create date: 11.11.2010
100-- Description: Recursively deletes all child-jobs of a job when it is deleted. (Source: http://devio.wordpress.com/2008/05/23/recursive-delete-in-sql-server/)
101-- =============================================
102CREATE TRIGGER [dbo].[tr_JobDeleteCascade] ON [dbo].[Job] INSTEAD OF DELETE AS
103BEGIN
104  CREATE TABLE #Table(
105    JobId uniqueidentifier
106  )
107  INSERT INTO #Table (JobId)
108  SELECT JobId FROM deleted
109 
110  DECLARE @c INT
111  SET @c = 0
112 
113  WHILE @c <> (SELECT COUNT(JobId) FROM #Table) BEGIN
114    SELECT @c = COUNT(JobId) FROM #Table
115   
116    INSERT INTO #Table (JobId)
117      SELECT Job.JobId
118      FROM Job
119      LEFT OUTER JOIN #Table ON Job.JobId = #Table.JobId
120      WHERE Job.ParentJobId IN (SELECT JobId FROM #Table)
121        AND #Table.JobId IS NULL
122  END
123 
124  DELETE JobData FROM JobData INNER JOIN #Table ON JobData.JobId = #Table.JobId
125  DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId
126END
Note: See TracBrowser for help on using the repository browser.