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 @ 5106

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

#1233

  • made MockJob to execute asynchronously with the option to spinWait
  • added methods to IHiveService
  • implemented methods for Slave handling in HiveService
  • added more tests for server
  • changed db-schema of slaves and slavegroups
File size: 5.5 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.RequiredPlugins ALTER COLUMN RequiredPluginId ADD ROWGUIDCOL;
47ALTER TABLE dbo.RequiredPlugins WITH NOCHECK ADD CONSTRAINT [DF_RequiredPlugins_RequiredPluginId] DEFAULT (newid()) FOR RequiredPluginId;
48
49ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Job_RequiredPlugin]
50ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Job_RequiredPlugin] FOREIGN KEY([JobId])
51REFERENCES [dbo].[Job] ([JobId])
52ON UPDATE CASCADE
53ON DELETE CASCADE
54GO
55
56ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Plugin_RequiredPlugin]
57ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Plugin_RequiredPlugin] FOREIGN KEY([PluginId])
58REFERENCES [dbo].[Plugin] ([PluginId])
59ON UPDATE CASCADE
60ON DELETE CASCADE
61GO
62
63ALTER TABLE dbo.Resource ALTER COLUMN ResourceId ADD ROWGUIDCOL;
64ALTER TABLE dbo.Resource WITH NOCHECK ADD CONSTRAINT [DF_Resource_ResourceId] DEFAULT (newid()) FOR ResourceId;
65
66ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId ADD ROWGUIDCOL;
67ALTER TABLE dbo.UptimeCalendar WITH NOCHECK ADD CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId] DEFAULT (newid()) FOR UptimeCalendarId;
68
69ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId ADD ROWGUIDCOL;
70ALTER TABLE dbo.HiveExperiment WITH NOCHECK ADD CONSTRAINT [DF_HiveExperiment_HiveExperimentId] DEFAULT (newid()) FOR HiveExperimentId;
71
72/* create indices */
73CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId);
74
75/* triggers */
76SET ANSI_NULLS ON
77GO
78SET QUOTED_IDENTIFIER ON
79GO
80-- =============================================
81-- Author:    cneumuel
82-- Create date: 11.11.2010
83-- Description: Deletes the root-job of the experiment when experiment is deleted
84-- =============================================
85CREATE TRIGGER [dbo].[tr_HiveExperimentDeleteCascade] ON [dbo].[HiveExperiment] FOR DELETE AS
86SET NOCOUNT ON
87DELETE Job FROM deleted, Job WHERE Job.JobId = deleted.RootJobId
88GO
89
90SET ANSI_NULLS ON
91GO
92SET QUOTED_IDENTIFIER ON
93GO
94-- =============================================
95-- Author:    cneumuel
96-- Create date: 11.11.2010
97-- 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/)
98-- =============================================
99CREATE TRIGGER [dbo].[tr_JobDeleteCascade] ON [dbo].[Job] INSTEAD OF DELETE AS
100BEGIN
101  CREATE TABLE #Table(
102    JobId uniqueidentifier
103  )
104  INSERT INTO #Table (JobId)
105  SELECT JobId FROM deleted
106 
107  DECLARE @c INT
108  SET @c = 0
109 
110  WHILE @c <> (SELECT COUNT(JobId) FROM #Table) BEGIN
111    SELECT @c = COUNT(JobId) FROM #Table
112   
113    INSERT INTO #Table (JobId)
114      SELECT Job.JobId
115      FROM Job
116      LEFT OUTER JOIN #Table ON Job.JobId = #Table.JobId
117      WHERE Job.ParentJobId IN (SELECT JobId FROM #Table)
118        AND #Table.JobId IS NULL
119  END
120 
121  DELETE JobData FROM JobData INNER JOIN #Table ON JobData.JobId = #Table.JobId
122  DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId
123END
Note: See TracBrowser for help on using the repository browser.