Add initial dbcleanup script

master
prathabanKavin 10 months ago
parent 94a0601cf3
commit c389d60750

@ -0,0 +1,161 @@
USE [DM_DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @retention datetime2
declare @i int
declare @count int
declare @BEFOREDATE varchar(10)
declare @TS varchar(22)
declare @ROWS int
set @BEFOREDATE = '2021-09-01`';
set @retention = CAST(@BEFOREDATE as datetime2)
DECLARE @TEMP_DM_ENROLMENT_OP_MAPPING TABLE (
ENROLMENT_ID INTEGER NOT NULL,
OPERATION_ID INTEGER NOT NULL,
[STATUS] VARCHAR(50) NULL,
CREATED_TIMESTAMP BIGINT NOT NULL,
UPDATED_TIMESTAMP BIGINT NOT NULL,
PUSH_NOTIFICATION_STATUS VARCHAR(50) NULL,
OPERATION_CODE VARCHAR(50) NOT NULL,
INITIATED_BY VARCHAR(100) NULL,
[TYPE] VARCHAR(20) NOT NULL,
DEVICE_ID INTEGER NULL,
DEVICE_TYPE VARCHAR(300) NOT NULL,
DEVICE_IDENTIFICATION VARCHAR(300) NULL,
TENANT_ID INTEGER NULL
);
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Moving retainable operation mappings and operation mapping records created after %s', 10, 1, @TS, @BEFOREDATE) WITH NOWAIT;
INSERT INTO @TEMP_DM_ENROLMENT_OP_MAPPING
([ENROLMENT_ID],
[OPERATION_ID],
[STATUS],
[CREATED_TIMESTAMP],
[UPDATED_TIMESTAMP],
[PUSH_NOTIFICATION_STATUS],
[OPERATION_CODE],
[INITIATED_BY],
[TYPE],
[DEVICE_ID],
[DEVICE_TYPE],
[DEVICE_IDENTIFICATION],
[TENANT_ID])
SELECT [ENROLMENT_ID], [OPERATION_ID], [STATUS], [CREATED_TIMESTAMP], [UPDATED_TIMESTAMP], [PUSH_NOTIFICATION_STATUS],
[OPERATION_CODE], [INITIATED_BY], [TYPE], [DEVICE_ID], [DEVICE_TYPE], [DEVICE_IDENTIFICATION], [TENANT_ID] FROM [dbo].[DM_ENROLMENT_OP_MAPPING]
WHERE [STATUS] = 'PENDING' OR [STATUS] = 'IN_PROGRESS' OR [UPDATED_TIMESTAMP] >= (SELECT DATEDIFF_BIG(millisecond, '1970-01-01 00:00:00', @retention));
SET @ROWS = @@ROWCOUNT
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Added %d records to variable table @TEMP_DM_ENROLMENT_OP_MAPPING', 10, 1, @TS, @ROWS) WITH NOWAIT;
RAISERROR (N'Removing FK constraints...', 10, 1) WITH NOWAIT;
ALTER TABLE [dbo].[DM_NOTIFICATION] DROP CONSTRAINT [FL_DM_NOTIFICATION];
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE_LARGE] DROP CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_LARGE_OPERATION];
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE_LARGE] DROP CONSTRAINT [FK_DM_EN_OP_MAP_RESPONSE_LARGE];
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] DROP CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_ENROLMENT];
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] DROP CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_OPERATION];
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] DROP CONSTRAINT [FK_DM_EN_OP_MAP_RESPONSE];
ALTER TABLE [dbo].[DM_ENROLMENT_OP_MAPPING] DROP CONSTRAINT [FK_DM_DEVICE_OPERATION_MAPPING_DEVICE];
ALTER TABLE [dbo].[DM_ENROLMENT_OP_MAPPING] DROP CONSTRAINT [FK_DM_DEVICE_OPERATION_MAPPING_OPERATION];
RAISERROR (N'Removing FK constraints - COMPLETED', 10, 1) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
TRUNCATE TABLE [dbo].[DM_NOTIFICATION];
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s [DM_NOTIFICATION] table truncated', 10, 1, @TS) WITH NOWAIT;
TRUNCATE TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE_LARGE];
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s [DM_DEVICE_OPERATION_RESPONSE_LARGE] table truncated', 10, 1, @TS) WITH NOWAIT;
TRUNCATE TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE];
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s [DM_DEVICE_OPERATION_RESPONSE] table truncated', 10, 1, @TS) WITH NOWAIT;
TRUNCATE TABLE [dbo].[DM_ENROLMENT_OP_MAPPING];
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s [DM_ENROLMENT_OP_MAPPING] table truncated', 10, 1, @TS) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
RAISERROR (N'Adding back the FK constraints', 10, 1) WITH NOWAIT;
ALTER TABLE [dbo].[DM_NOTIFICATION] WITH CHECK ADD CONSTRAINT [FL_DM_NOTIFICATION] FOREIGN KEY([DEVICE_ID]) REFERENCES [dbo].[DM_DEVICE] ([ID]);
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE_LARGE] WITH CHECK ADD CONSTRAINT [FK_DM_EN_OP_MAP_RESPONSE_LARGE] FOREIGN KEY([EN_OP_MAP_ID]) REFERENCES [dbo].[DM_ENROLMENT_OP_MAPPING] ([ID]);
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] WITH CHECK ADD CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_ENROLMENT] FOREIGN KEY([ENROLMENT_ID]) REFERENCES [dbo].[DM_ENROLMENT] ([ID]);
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] WITH CHECK ADD CONSTRAINT [FK_DM_EN_OP_MAP_RESPONSE] FOREIGN KEY([EN_OP_MAP_ID]) REFERENCES [dbo].[DM_ENROLMENT_OP_MAPPING] ([ID]);
ALTER TABLE [dbo].[DM_ENROLMENT_OP_MAPPING] WITH CHECK ADD CONSTRAINT [FK_DM_DEVICE_OPERATION_MAPPING_DEVICE] FOREIGN KEY([ENROLMENT_ID]) REFERENCES [dbo].[DM_ENROLMENT] ([ID]);
RAISERROR (N'Adding FK constraints - COMPLETED', 10, 1) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
INSERT INTO [dbo].[DM_ENROLMENT_OP_MAPPING]
([ENROLMENT_ID],
[OPERATION_ID],
[STATUS],
[PUSH_NOTIFICATION_STATUS],
[CREATED_TIMESTAMP],
[UPDATED_TIMESTAMP],
[OPERATION_CODE],
[INITIATED_BY],
[TYPE],
[DEVICE_ID],
[DEVICE_TYPE],
[DEVICE_IDENTIFICATION],
[TENANT_ID])
SELECT [ENROLMENT_ID], [OPERATION_ID], [STATUS], [PUSH_NOTIFICATION_STATUS], [CREATED_TIMESTAMP], [UPDATED_TIMESTAMP],
[OPERATION_CODE], [INITIATED_BY], [TYPE], [DEVICE_ID], [DEVICE_TYPE], [DEVICE_IDENTIFICATION], [TENANT_ID] FROM @TEMP_DM_ENROLMENT_OP_MAPPING;
SET @ROWS = @@ROWCOUNT
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Added %d records to [DM_ENROLMENT_OP_MAPPING] back from variable table @TEMP_DM_ENROLMENT_OP_MAPPING', 10, 1, @TS, @ROWS) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Adding operation ids which needs to preserve in to [TEMP_DATA]', 10, 1, @TS) WITH NOWAIT;
DECLARE @TEMP_DATA TABLE (
[OPERATION_ID] [int] NULL
);
INSERT INTO @TEMP_DATA
([OPERATION_ID])
SELECT DISTINCT OPERATION_ID FROM @TEMP_DM_ENROLMENT_OP_MAPPING;
SET @ROWS = @@ROWCOUNT
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Added %d records of Operations which needs to preserve for [DM_ENROLMENT_OP_MAPPING] in to [TEMP_DATA]', 10, 1, @TS, @ROWS) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
DELETE dop FROM [dbo].[DM_OPERATION] AS dop
LEFT JOIN @TEMP_DATA AS td
ON dop.ID = td.OPERATION_ID
WHERE td.OPERATION_ID IS NULL;
SET @ROWS = @@ROWCOUNT
SET @TS = CONVERT(varchar, SYSDATETIME(), 121);
RAISERROR (N'%s Removed %d of records from [DM_OPERATION]', 10, 1, @TS, @ROWS) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
GO
RAISERROR (N'Adding back the FK constraints for DM_OPERATION', 10, 1) WITH NOWAIT;
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE_LARGE] WITH CHECK ADD CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_LARGE_OPERATION] FOREIGN KEY([OPERATION_ID]) REFERENCES [dbo].[DM_OPERATION] ([ID]);
ALTER TABLE [dbo].[DM_DEVICE_OPERATION_RESPONSE] WITH CHECK ADD CONSTRAINT [FK_DM_DEVICE_OPERATION_RESP_OPERATION] FOREIGN KEY([OPERATION_ID]) REFERENCES [dbo].[DM_OPERATION] ([ID]);
ALTER TABLE [dbo].[DM_ENROLMENT_OP_MAPPING] WITH CHECK ADD CONSTRAINT [FK_DM_DEVICE_OPERATION_MAPPING_OPERATION] FOREIGN KEY([OPERATION_ID]) REFERENCES [dbo].[DM_OPERATION] ([ID]);
RAISERROR (N'Adding FK constraints for DM_OPERATION - COMPLETED', 10, 1) WITH NOWAIT;
RAISERROR (N'-----------------------------', 10, 1) WITH NOWAIT;
GO
RAISERROR (N'Start reindexing', 10, 1) WITH NOWAIT;
ALTER INDEX ALL ON [dbo].[DM_OPERATION]
REORGANIZE;
PRINT 'Re-indexed [DM_OPERATION]';
GO

@ -7,6 +7,7 @@ timestamp() {
echo "$(timestamp) : =====Starting DB Migrations====="
echo ""
DB_SERVER=kavin
DB_USER=sa
DB_PASS=Cpbac7690#
#DB_HOST=
@ -21,7 +22,7 @@ APPM_SCRIPT="${CURRENT_DIRECTORY}/appm/appm382to530.sql"
echo "$(timestamp) : Migrating AM_DB IDP tables "
echo ""
sqlcmd -U $DB_USER -P$DB_PASS -i "$APIM_IDP_SCRIPT"
sqlcmd -S $DB_SERVER -U $DB_USER -P$DB_PASS -i "$APIM_IDP_SCRIPT"
#echo "$(timestamp) : Migrating REG_DB tables"
#echo ""
#mysql -h $DB_HOST -u $DB_USER -p$DB_PASS < "$REG_SCRIPT"
@ -30,11 +31,12 @@ sqlcmd -U $DB_USER -P$DB_PASS -i "$APIM_IDP_SCRIPT"
#mysql -h $DB_HOST -u $DB_USER -p$DB_PASS < "$UM_SCRIPT"
echo "$(timestamp) : Migrating CDM tables"
echo ""
sqlcmd -U $DB_USER -P$DB_PASS -i "$CDM_SCRIPT"
sqlcmd -S $DB_SERVER -U $DB_USER -P$DB_PASS -i "$CDM_SCRIPT"
echo "$(timestamp) : Migrating APPM tables"
echo ""
sqlcmd -U $DB_USER -P$DB_PASS -i "$APPM_SCRIPT"
sqlcmd -S $DB_SERVER -U $DB_USER -P$DB_PASS -i "$APPM_SCRIPT"
echo ""
echo "$(timestamp) : =====DB Migration Completed====="
echo ""

Loading…
Cancel
Save