From ba060765770f90ba599836aea41606346b864c28 Mon Sep 17 00:00:00 2001 From: Rui Tome Date: Thu, 11 Jan 2024 14:41:16 +0000 Subject: [PATCH] [AC-1682] Added data migration script to set FlexibleCollections = 1 for all orgs --- ...01-10_03_EnableOrgsFlexibleCollections.sql | 28 +++++++++++++++++++ ...4_AllOrgsEnableCollectionEnhancements.sql} | 0 2 files changed, 28 insertions(+) create mode 100644 util/Migrator/DbScripts_transition/2024-01-10_03_EnableOrgsFlexibleCollections.sql rename util/Migrator/DbScripts_transition/{2024-01-10_03_AllOrgsEnableCollectionEnhancements.sql => 2024-01-10_04_AllOrgsEnableCollectionEnhancements.sql} (100%) diff --git a/util/Migrator/DbScripts_transition/2024-01-10_03_EnableOrgsFlexibleCollections.sql b/util/Migrator/DbScripts_transition/2024-01-10_03_EnableOrgsFlexibleCollections.sql new file mode 100644 index 0000000000..061f9a2af9 --- /dev/null +++ b/util/Migrator/DbScripts_transition/2024-01-10_03_EnableOrgsFlexibleCollections.sql @@ -0,0 +1,28 @@ +-- Step 1: Insert into a temporary table with an additional column for batch processing, update 50 k at a time +SELECT [Id] AS [OrganizationId], CAST(ROW_NUMBER() OVER(ORDER BY [Id]) / 50000 AS INT) AS Batch +INTO #TempOrg +FROM [dbo].[Organization] +WHERE [FlexibleCollections] = 0; + +-- Step 2: Get the maximum batch number +DECLARE @MaxBatch INT = (SELECT MAX(Batch) FROM #TempOrg); +DECLARE @CurrentBatch INT = 0; + +-- Step 3: Process each batch +WHILE @CurrentBatch <= @MaxBatch +BEGIN + -- Update existing rows in [dbo].[CollectionUser] + UPDATE target + SET + target.[FlexibleCollections] = 1 + FROM [dbo].[Organization] AS target + INNER JOIN #TempOrg AS source + ON target.[Id] = source.[OrganizationId] + WHERE source.[Batch] = @CurrentBatch; + + -- Move to the next batch + SET @CurrentBatch = @CurrentBatch + 1; +END; + +-- Step 4: Drop the temporary table +DROP TABLE #TempOrg; diff --git a/util/Migrator/DbScripts_transition/2024-01-10_03_AllOrgsEnableCollectionEnhancements.sql b/util/Migrator/DbScripts_transition/2024-01-10_04_AllOrgsEnableCollectionEnhancements.sql similarity index 100% rename from util/Migrator/DbScripts_transition/2024-01-10_03_AllOrgsEnableCollectionEnhancements.sql rename to util/Migrator/DbScripts_transition/2024-01-10_04_AllOrgsEnableCollectionEnhancements.sql