feat(database): split MisData into archival tables

Split MisData table into MisData_Curr (Status='Current') and
MisData_Hist (Status='BackLevel') following existing archival pattern.

- Add MisData_Curr and MisData_Hist table scripts
- Create MisData view (UNION ALL) for backward compatibility
- Update production and DEV pipeline configurations
- Update unit tests for new table count (22 tables)
- Update database documentation
This commit is contained in:
Joseph Doherty
2026-01-19 01:08:37 -05:00
parent 5a798b089b
commit 1e5b1bb3da
7 changed files with 116 additions and 21 deletions
@@ -1,10 +1,11 @@
-- Migration: 012_CreateMisDataTable
-- Source: OLD/Database/Tables/MisData.sql
-- Changes: DATETIME -> DATETIME2(7)
-- Changes: DATETIME -> DATETIME2(7), now creates MisData_Hist (archival pattern)
-- Note: This script is kept for fresh installs; creates the _Hist table
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MisData' AND schema_id = SCHEMA_ID('dbo'))
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MisData_Hist' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE [dbo].[MisData]
CREATE TABLE [dbo].[MisData_Hist]
(
[ItemNumber] VARCHAR(32) NOT NULL,
[BranchCode] VARCHAR(32) NOT NULL,
@@ -20,7 +21,7 @@ BEGIN
[Status] VARCHAR(32) NOT NULL,
[ReleaseDate] DATETIME2(7) NULL,
[ObsoleteDate] DATETIME2(7) NULL,
CONSTRAINT [PK_MisData] PRIMARY KEY CLUSTERED([ItemNumber], [BranchCode], [SequenceNumber], [MisNumber], [RevID], [Status], [CharNumber])
CONSTRAINT [PK_MisData_Hist] PRIMARY KEY CLUSTERED([ItemNumber], [BranchCode], [SequenceNumber], [MisNumber], [RevID], [Status], [CharNumber])
);
END
GO
@@ -0,0 +1,26 @@
-- Migration: 012a_CreateMisDataHistTable
-- Source: OLD/Database/Tables/MisData.sql
-- Changes: DATETIME -> DATETIME2(7), split into Hist/Curr tables
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MisData_Hist' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE [dbo].[MisData_Hist]
(
[ItemNumber] VARCHAR(32) NOT NULL,
[BranchCode] VARCHAR(32) NOT NULL,
[SequenceNumber] VARCHAR(32) NOT NULL,
[MisNumber] VARCHAR(32) NOT NULL,
[RevID] VARCHAR(32) NOT NULL,
[CharNumber] VARCHAR(32) NOT NULL,
[TestDescription] VARCHAR(2000) NULL,
[SamplingType] VARCHAR(32) NULL,
[SamplingValue] VARCHAR(32) NULL,
[ToolsGauges] VARCHAR(2000) NULL,
[WorkInstructions] VARCHAR(2000) NULL,
[Status] VARCHAR(32) NOT NULL,
[ReleaseDate] DATETIME2(7) NULL,
[ObsoleteDate] DATETIME2(7) NULL,
CONSTRAINT [PK_MisData_Hist] PRIMARY KEY CLUSTERED([ItemNumber], [BranchCode], [SequenceNumber], [MisNumber], [RevID], [Status], [CharNumber])
);
END
GO
@@ -0,0 +1,26 @@
-- Migration: 012b_CreateMisDataCurrTable
-- Source: OLD/Database/Tables/MisData.sql
-- Changes: DATETIME -> DATETIME2(7), split into Hist/Curr tables
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MisData_Curr' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE [dbo].[MisData_Curr]
(
[ItemNumber] VARCHAR(32) NOT NULL,
[BranchCode] VARCHAR(32) NOT NULL,
[SequenceNumber] VARCHAR(32) NOT NULL,
[MisNumber] VARCHAR(32) NOT NULL,
[RevID] VARCHAR(32) NOT NULL,
[CharNumber] VARCHAR(32) NOT NULL,
[TestDescription] VARCHAR(2000) NULL,
[SamplingType] VARCHAR(32) NULL,
[SamplingValue] VARCHAR(32) NULL,
[ToolsGauges] VARCHAR(2000) NULL,
[WorkInstructions] VARCHAR(2000) NULL,
[Status] VARCHAR(32) NOT NULL,
[ReleaseDate] DATETIME2(7) NULL,
[ObsoleteDate] DATETIME2(7) NULL,
CONSTRAINT [PK_MisData_Curr] PRIMARY KEY CLUSTERED([ItemNumber], [BranchCode], [SequenceNumber], [MisNumber], [RevID], [Status], [CharNumber])
);
END
GO
@@ -0,0 +1,13 @@
-- Migration: 033_CreateMisDataView
-- Source: OLD/Database/Views/MisData.sql
-- Union view combining MisData_Curr and MisData_Hist
CREATE OR ALTER VIEW [dbo].[MisData] AS
(
SELECT hist.*
FROM dbo.MisData_Hist hist
UNION ALL
SELECT curr.*
FROM dbo.MisData_Curr curr
);
GO