Difference between revisions of "Heureka database upgrade script 0.4.2.1"

From Heureka Wiki
Jump to navigation Jump to search
(New page: <pre> IF (SELECT COUNT(*) FROM VERSION WHERE ApplicationVersion = '0.4.2') = 0 BEGIN PRINT 'Wrong Version of database. You must upgrade to version 0.4.2 before running this script.'; EN...)
 
 
Line 1: Line 1:
 
<pre>
 
<pre>
IF (SELECT COUNT(*) FROM VERSION WHERE ApplicationVersion = '0.4.2') = 0
+
IF (SELECT COUNT(*) FROM VERSION WHERE ApplicationVersion = '0.4.2' OR ApplicationVersion = '0.4.2.1' ) = 0
 
BEGIN
 
BEGIN
  PRINT 'Wrong Version of database. You must upgrade to version 0.4.2 before running this script.';
+
PRINT 'Wrong Version of database. You must upgrade to version 0.4.2 before running this script.';
 +
SELECT ApplicationVersion FROM VERSION;
 
END
 
END
 
ELSE  
 
ELSE  
 
BEGIN
 
BEGIN
  
BEGIN TRANSACTION;
+
SET ANSI_NULLS ON;
 +
SET QUOTED_IDENTIFIER ON;
  
BEGIN TRY
+
-- 1. StandObject
  
-- 1. StandObject
+
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
 +
WHERE TABLE_NAME = 'StandObject' AND COLUMN_NAME = 'SurveyorCode')
 +
BEGIN
  
ALTER TABLE StandObject ADD
+
ALTER TABLE StandObject ADD
SurveyorCode int NULL,
+
SurveyorCode int NULL,
SpacingPlots int NULL,
+
SpacingPlots int NULL,
RadPlants int NULL,
+
RadPlants int NULL,
RadTrees int NULL,
+
RadTrees int NULL,
P1 int NULL,
+
P1 int NULL,
P2 int NULL,
+
P2 int NULL,
P3 int NULL,
+
P3 int NULL,
CreateDate datetime NULL;
+
CreateDate datetime NULL;
  
-- 2. StandObjectPlot
+
END
 +
 
 +
-- 2. StandObjectPlot
 +
 
 +
IF OBJECT_ID ('dbo.StandObjectPlot','U') IS NULL
 +
BEGIN
  
/****** Object:  Table [dbo].[StandObjectPlot]    Script Date: 09/29/2008 15:28:12 ******/
 
SET ANSI_NULLS ON;
 
SET QUOTED_IDENTIFIER ON;
 
 
CREATE TABLE [dbo].[StandObjectPlot](
 
CREATE TABLE [dbo].[StandObjectPlot](
 
[StandObjectGuid] [uniqueidentifier] NOT NULL,
 
[StandObjectGuid] [uniqueidentifier] NOT NULL,
Line 44: Line 50:
 
REFERENCES [dbo].[StandObject] ([StandObjectGuid]);
 
REFERENCES [dbo].[StandObject] ([StandObjectGuid]);
 
ALTER TABLE [dbo].[StandObjectPlot] CHECK CONSTRAINT [FK_StandObjectPlot_StandObject];
 
ALTER TABLE [dbo].[StandObjectPlot] CHECK CONSTRAINT [FK_StandObjectPlot_StandObject];
 +
END
 
 
-- 3. StandInventory
+
-- 3. StandInventory
 +
 
 +
IF OBJECT_ID ('dbo.StandInventory','U') IS NULL
 +
BEGIN
  
 
CREATE TABLE [dbo].[StandInventory](
 
CREATE TABLE [dbo].[StandInventory](
Line 59: Line 69:
  
 
ALTER TABLE [dbo].[StandInventory] CHECK CONSTRAINT [FK_StandInventory_StandObject];
 
ALTER TABLE [dbo].[StandInventory] CHECK CONSTRAINT [FK_StandInventory_StandObject];
 +
END
  
-- 4. InitialState_SiteData
+
-- 4. InitialState_SiteData
  
 +
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
 +
WHERE TABLE_NAME = 'InitialState_SiteData' AND COLUMN_NAME = 'Saplings_Unknown')
 +
BEGIN
  
 
ALTER TABLE dbo.InitialState_SiteData ADD
 
ALTER TABLE dbo.InitialState_SiteData ADD
Line 74: Line 88:
 
Saplings_Contorta float(53) NULL,
 
Saplings_Contorta float(53) NULL,
 
Saplings_Broadleaf float(53) NULL;
 
Saplings_Broadleaf float(53) NULL;
 +
END
  
-- Update Version Table
+
-- 5. InitialState_PredictionUnit
  
UPDATE Version SET ApplicationVersion = '0.4.2.1';
+
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
 +
WHERE TABLE_NAME = 'InitialState_PredictionUnit' AND COLUMN_NAME = 'Saplings_Unknown')
 +
BEGIN
  
IF @@TRANCOUNT > 0
 
COMMIT TRANSACTION;
 
  
  PRINT 'Success! Database upgrade to version 0.4.2.1';
+
ALTER TABLE dbo.InitialState_PredictionUnit ADD
 +
Saplings_Unknown float(53) NULL,
 +
Saplings_Pine float(53) NULL,
 +
Saplings_Spruce float(53) NULL,
 +
Saplings_Birch float(53) NULL,
 +
Saplings_Aspen float(53) NULL,
 +
Saplings_Oak float(53) NULL,
 +
Saplings_Beech float(53) NULL,
 +
Saplings_Deciduous float(53) NULL,
 +
Saplings_Contorta float(53) NULL,
 +
Saplings_Broadleaf float(53) NULL;
  
END TRY
+
END
  
BEGIN CATCH
+
-- Update Version Table
SELECT
 
ERROR_NUMBER() AS ErrorNumber,
 
ERROR_SEVERITY() AS ErrorSeverity,
 
ERROR_STATE() as ErrorState,
 
ERROR_PROCEDURE() as ErrorProcedure,
 
ERROR_LINE() as ErrorLine,
 
ERROR_MESSAGE() as ErrorMessage;
 
  
IF @@TRANCOUNT > 0
+
UPDATE Version SET ApplicationVersion = '0.4.2.1';
ROLLBACK TRANSACTION;
+
 
END CATCH;
+
  PRINT 'Success! Database upgrade to version 0.4.2.1';
  
 
END
 
END
 +
 
</pre>
 
</pre>

Latest revision as of 20:50, 30 September 2008

IF (SELECT COUNT(*) FROM VERSION WHERE ApplicationVersion = '0.4.2' OR ApplicationVersion = '0.4.2.1' ) = 0
BEGIN
	PRINT 'Wrong Version of database. You must upgrade to version 0.4.2 before running this script.';
	SELECT ApplicationVersion FROM VERSION;
END
ELSE 
BEGIN

	SET ANSI_NULLS ON;
	SET QUOTED_IDENTIFIER ON;

	-- 1. StandObject

	IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
	WHERE TABLE_NAME = 'StandObject' AND COLUMN_NAME = 'SurveyorCode')
	BEGIN

	ALTER TABLE StandObject ADD
		SurveyorCode int NULL,
		SpacingPlots int NULL,
		RadPlants int NULL,
		RadTrees int NULL,
		P1 int NULL,
		P2 int NULL,
		P3 int NULL,
		CreateDate datetime NULL;

	END

	-- 2. StandObjectPlot

	IF OBJECT_ID ('dbo.StandObjectPlot','U') IS NULL
	BEGIN

		CREATE TABLE [dbo].[StandObjectPlot](
			[StandObjectGuid] [uniqueidentifier] NOT NULL,
			[StandObjectPlotGUID] [uniqueidentifier] NOT NULL,
			[PlotId] [int] NOT NULL,
			[GpsNorth] [float] NULL,
			[GpsEast] [float] NULL,
		 CONSTRAINT [PK_StandObjectPlot] PRIMARY KEY CLUSTERED 
		(
			[StandObjectGuid] ASC,
			[StandObjectPlotGUID] ASC
		)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
		) ON [PRIMARY];

		ALTER TABLE [dbo].[StandObjectPlot]  WITH CHECK ADD  CONSTRAINT [FK_StandObjectPlot_StandObject] FOREIGN KEY([StandObjectGuid])
		REFERENCES [dbo].[StandObject] ([StandObjectGuid]);
		ALTER TABLE [dbo].[StandObjectPlot] CHECK CONSTRAINT [FK_StandObjectPlot_StandObject];
	END
		
	-- 3. StandInventory

	IF OBJECT_ID ('dbo.StandInventory','U') IS NULL
	BEGIN

		CREATE TABLE [dbo].[StandInventory](
			[StandObjectGuid] [uniqueidentifier] NOT NULL,
		 CONSTRAINT [PK_StandInventory] PRIMARY KEY CLUSTERED 
		(
			[StandObjectGuid] ASC
		)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
		) ON [PRIMARY];

		ALTER TABLE [dbo].[StandInventory]  WITH CHECK ADD  CONSTRAINT [FK_StandInventory_StandObject] FOREIGN KEY([StandObjectGuid])
		REFERENCES [dbo].[StandObject] ([StandObjectGuid]);

		ALTER TABLE [dbo].[StandInventory] CHECK CONSTRAINT [FK_StandInventory_StandObject];
	END

	-- 4. InitialState_SiteData

	IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
	WHERE TABLE_NAME = 'InitialState_SiteData' AND COLUMN_NAME = 'Saplings_Unknown')
	BEGIN

		ALTER TABLE dbo.InitialState_SiteData ADD
			Saplings_Unknown float(53) NULL,
			Saplings_Pine float(53) NULL,
			Saplings_Spruce float(53) NULL,
			Saplings_Birch float(53) NULL,
			Saplings_Aspen float(53) NULL,
			Saplings_Oak float(53) NULL,
			Saplings_Beech float(53) NULL,
			Saplings_Deciduous float(53) NULL,
			Saplings_Contorta float(53) NULL,
			Saplings_Broadleaf float(53) NULL;
	END

		-- 5. InitialState_PredictionUnit

	IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
	WHERE TABLE_NAME = 'InitialState_PredictionUnit' AND COLUMN_NAME = 'Saplings_Unknown')
	BEGIN


		ALTER TABLE dbo.InitialState_PredictionUnit ADD
			Saplings_Unknown float(53) NULL,
			Saplings_Pine float(53) NULL,
			Saplings_Spruce float(53) NULL,
			Saplings_Birch float(53) NULL,
			Saplings_Aspen float(53) NULL,
			Saplings_Oak float(53) NULL,
			Saplings_Beech float(53) NULL,
			Saplings_Deciduous float(53) NULL,
			Saplings_Contorta float(53) NULL,
			Saplings_Broadleaf float(53) NULL;

	END

	-- Update Version Table

	UPDATE Version SET ApplicationVersion = '0.4.2.1';

   PRINT 'Success! Database upgrade to version 0.4.2.1';

END