From d2abf5b2d7e825d36028ec445306279dcba9035e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rui=20Tom=C3=A9?= <108268980+r-tome@users.noreply.github.com> Date: Fri, 26 Apr 2024 14:11:00 +0100 Subject: [PATCH] [AC-2323] Flexible collections: automatically migrate data for all Organizations (#3927) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [AC-2323] Added script to migrate all sql organizations to use flexible collections * [AC-2323] Overriding FlexibleCollectionsSignup to true for local usage * [AC-2323] Fix script comment * [AC-2323] Fixed typo * [AC-2323] Bump up date on migration script * [AC-2323] Bump migration script date --------- Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> --- src/Core/Constants.cs | 3 +- ..._00_EnableAllOrgCollectionEnhancements.sql | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 util/Migrator/DbScripts/2024-04-25_00_EnableAllOrgCollectionEnhancements.sql diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs index 55751c4dfd..e0e4771924 100644 --- a/src/Core/Constants.cs +++ b/src/Core/Constants.cs @@ -151,7 +151,8 @@ public static class FeatureFlagKeys { TrustedDeviceEncryption, "true" }, { Fido2VaultCredentials, "true" }, { DuoRedirect, "true" }, - { UnassignedItemsBanner, "true"} + { UnassignedItemsBanner, "true"}, + { FlexibleCollectionsSignup, "true" } }; } } diff --git a/util/Migrator/DbScripts/2024-04-25_00_EnableAllOrgCollectionEnhancements.sql b/util/Migrator/DbScripts/2024-04-25_00_EnableAllOrgCollectionEnhancements.sql new file mode 100644 index 0000000000..2b3103d398 --- /dev/null +++ b/util/Migrator/DbScripts/2024-04-25_00_EnableAllOrgCollectionEnhancements.sql @@ -0,0 +1,37 @@ +-- This script will enable collection enhancements for organizations that don't have Collection Enhancements enabled. + +-- Step 1: Create a temporary table to store the Organizations with FlexibleCollections = 0 +SELECT [Id] AS [OrganizationId] +INTO #TempOrg +FROM [dbo].[Organization] +WHERE [FlexibleCollections] = 0 + +-- Step 2: Execute the stored procedure for each OrganizationId +DECLARE @OrganizationId UNIQUEIDENTIFIER; + +DECLARE OrgCursor CURSOR FOR +SELECT [OrganizationId] +FROM #TempOrg; + +OPEN OrgCursor; + +FETCH NEXT FROM OrgCursor INTO @OrganizationId; + +WHILE (@@FETCH_STATUS = 0) +BEGIN + -- Execute the stored procedure for the current OrganizationId + EXEC [dbo].[Organization_EnableCollectionEnhancements] @OrganizationId; + + -- Update the Organization to set FlexibleCollections = 1 + UPDATE [dbo].[Organization] + SET [FlexibleCollections] = 1 + WHERE [Id] = @OrganizationId; + + FETCH NEXT FROM OrgCursor INTO @OrganizationId; +END; + +CLOSE OrgCursor; +DEALLOCATE OrgCursor; + +-- Step 3: Drop the temporary table +DROP TABLE #TempOrg;