1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-02 00:22:50 -05:00

[AC-1682] Drop temp tables if they exist when starting the scripts

This commit is contained in:
Rui Tome
2024-03-29 12:00:24 +00:00
parent 26f5bf8afd
commit c20912f95c
3 changed files with 105 additions and 96 deletions

View File

@ -1,6 +1,7 @@
-- Step 1: AccessAll migration for Groups -- Step 1: AccessAll migration for Groups
-- Create a temporary table to store the groups with AccessAll = 1 -- Create a temporary table to store the groups with AccessAll = 1
CREATE TEMPORARY TABLE IF NOT EXISTS `TempGroupsAccessAll` AS DROP TEMPORARY TABLE IF EXISTS `TempGroupsAccessAll`;
CREATE TEMPORARY TABLE `TempGroupsAccessAll` AS
SELECT `G`.`Id` AS `GroupId`, SELECT `G`.`Id` AS `GroupId`,
`G`.`OrganizationId` `G`.`OrganizationId`
FROM `Group` `G` FROM `Group` `G`
@ -9,7 +10,8 @@
-- Step 2: AccessAll migration for OrganizationUsers -- Step 2: AccessAll migration for OrganizationUsers
-- Create a temporary table to store the OrganizationUsers with AccessAll = 1 -- Create a temporary table to store the OrganizationUsers with AccessAll = 1
CREATE TEMPORARY TABLE IF NOT EXISTS `TempUsersAccessAll` AS DROP TEMPORARY TABLE IF EXISTS `TempUsersAccessAll`;
CREATE TEMPORARY TABLE `TempUsersAccessAll` AS
SELECT `OU`.`Id` AS `OrganizationUserId`, SELECT `OU`.`Id` AS `OrganizationUserId`,
`OU`.`OrganizationId` `OU`.`OrganizationId`
FROM `OrganizationUser` `OU` FROM `OrganizationUser` `OU`
@ -19,7 +21,8 @@
-- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with [Manage] = 1 -- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with [Manage] = 1
-- and finally update all OrganizationUsers with Manager role to User role -- and finally update all OrganizationUsers with Manager role to User role
-- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission -- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission
CREATE TEMPORARY TABLE IF NOT EXISTS `TempUserManagers` AS DROP TEMPORARY TABLE IF EXISTS `TempUserManagers`;
CREATE TEMPORARY TABLE `TempUserManagers` AS
SELECT `OU`.`Id` AS `OrganizationUserId`, SELECT `OU`.`Id` AS `OrganizationUserId`,
CASE WHEN `OU`.`Type` = 3 THEN 1 ELSE 0 END AS `IsManager` CASE WHEN `OU`.`Type` = 3 THEN 1 ELSE 0 END AS `IsManager`
FROM `OrganizationUser` `OU` FROM `OrganizationUser` `OU`
@ -138,7 +141,7 @@ START TRANSACTION;
-- Commit transaction -- Commit transaction
COMMIT; COMMIT;
-- Step 5: Drop the temporary tables -- Step 6: Drop the temporary tables
DROP TEMPORARY TABLE IF EXISTS `TempGroupsAccessAll`; DROP TEMPORARY TABLE IF EXISTS `TempGroupsAccessAll`;
DROP TEMPORARY TABLE IF EXISTS `TempUsersAccessAll`; DROP TEMPORARY TABLE IF EXISTS `TempUsersAccessAll`;
DROP TEMPORARY TABLE IF EXISTS `TempUserManagers`; DROP TEMPORARY TABLE IF EXISTS `TempUserManagers`;

View File

@ -1,6 +1,7 @@
-- Step 1: AccessAll migration for Groups -- Step 1: AccessAll migration for Groups
-- Create a temporary table to store the groups with AccessAll = true -- Create a temporary table to store the groups with AccessAll = true
CREATE TEMPORARY TABLE IF NOT EXISTS "TempGroupsAccessAll" AS DROP TABLE IF EXISTS "TempGroupsAccessAll";
CREATE TEMPORARY TABLE "TempGroupsAccessAll" AS
SELECT "G"."Id" AS "GroupId", SELECT "G"."Id" AS "GroupId",
"G"."OrganizationId" "G"."OrganizationId"
FROM "Group" "G" FROM "Group" "G"
@ -9,7 +10,8 @@
-- Step 2: AccessAll migration for OrganizationUsers -- Step 2: AccessAll migration for OrganizationUsers
-- Create a temporary table to store the OrganizationUsers with AccessAll = true -- Create a temporary table to store the OrganizationUsers with AccessAll = true
CREATE TEMPORARY TABLE IF NOT EXISTS "TempUsersAccessAll" AS DROP TABLE IF EXISTS "TempUsersAccessAll";
CREATE TEMPORARY TABLE "TempUsersAccessAll" AS
SELECT "OU"."Id" AS "OrganizationUserId", SELECT "OU"."Id" AS "OrganizationUserId",
"OU"."OrganizationId" "OU"."OrganizationId"
FROM "OrganizationUser" "OU" FROM "OrganizationUser" "OU"
@ -19,7 +21,8 @@
-- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with Manage = 1 -- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with Manage = 1
-- and finally update all OrganizationUsers with Manager role to User role -- and finally update all OrganizationUsers with Manager role to User role
-- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission -- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission
CREATE TEMPORARY TABLE IF NOT EXISTS "TempUserManagers" AS DROP TABLE IF EXISTS "TempUserManagers";
CREATE TEMPORARY TABLE "TempUserManagers" AS
SELECT "OU"."Id" AS "OrganizationUserId", SELECT "OU"."Id" AS "OrganizationUserId",
CASE WHEN "OU"."Type" = 3 THEN true ELSE false END AS "IsManager" CASE WHEN "OU"."Type" = 3 THEN true ELSE false END AS "IsManager"
FROM "OrganizationUser" "OU" FROM "OrganizationUser" "OU"
@ -126,7 +129,7 @@
SET "FlexibleCollections" = true SET "FlexibleCollections" = true
WHERE "FlexibleCollections" = false; WHERE "FlexibleCollections" = false;
-- Step 5: Drop the temporary tables -- Step 6: Drop the temporary tables
DROP TABLE IF EXISTS "TempGroupsAccessAll"; DROP TABLE IF EXISTS "TempGroupsAccessAll";
DROP TABLE IF EXISTS "TempUsersAccessAll"; DROP TABLE IF EXISTS "TempUsersAccessAll";
DROP TABLE IF EXISTS "TempUserManagers"; DROP TABLE IF EXISTS "TempUserManagers";

View File

@ -1,6 +1,7 @@
-- Step 1: AccessAll migration for Groups -- Step 1: AccessAll migration for Groups
-- Create a temporary table to store the groups with AccessAll = 1 -- Create a temporary table to store the groups with AccessAll = 1
CREATE TEMPORARY TABLE IF NOT EXISTS "TempGroupsAccessAll" AS DROP TABLE IF EXISTS "TempGroupsAccessAll";
CREATE TEMPORARY TABLE "TempGroupsAccessAll" AS
SELECT "G"."Id" AS "GroupId", SELECT "G"."Id" AS "GroupId",
"G"."OrganizationId" "G"."OrganizationId"
FROM "Group" "G" FROM "Group" "G"
@ -9,7 +10,8 @@
-- Step 2: AccessAll migration for OrganizationUsers -- Step 2: AccessAll migration for OrganizationUsers
-- Create a temporary table to store the OrganizationUsers with AccessAll = 1 -- Create a temporary table to store the OrganizationUsers with AccessAll = 1
CREATE TEMPORARY TABLE IF NOT EXISTS "TempUsersAccessAll" AS DROP TABLE IF EXISTS "TempUsersAccessAll";
CREATE TEMPORARY TABLE "TempUsersAccessAll" AS
SELECT "OU"."Id" AS "OrganizationUserId", SELECT "OU"."Id" AS "OrganizationUserId",
"OU"."OrganizationId" "OU"."OrganizationId"
FROM "OrganizationUser" "OU" FROM "OrganizationUser" "OU"
@ -19,7 +21,8 @@
-- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with [Manage] = 1 -- Step 3: For all OrganizationUsers with Manager role or 'EditAssignedCollections' permission update their existing CollectionUsers rows and insert new rows with [Manage] = 1
-- and finally update all OrganizationUsers with Manager role to User role -- and finally update all OrganizationUsers with Manager role to User role
-- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission -- Create a temporary table to store the OrganizationUsers with Manager role or 'EditAssignedCollections' permission
CREATE TEMPORARY TABLE IF NOT EXISTS "TempUserManagers" AS DROP TABLE IF EXISTS "TempUserManagers";
CREATE TEMPORARY TABLE "TempUserManagers" AS
SELECT "OU"."Id" AS "OrganizationUserId", SELECT "OU"."Id" AS "OrganizationUserId",
CASE WHEN "OU"."Type" = 3 THEN 1 ELSE 0 END AS "IsManager" CASE WHEN "OU"."Type" = 3 THEN 1 ELSE 0 END AS "IsManager"
FROM "OrganizationUser" "OU" FROM "OrganizationUser" "OU"