From 26a12836a8cda627247d1c137fb08cc73267f534 Mon Sep 17 00:00:00 2001 From: Thorsten Schau Date: Thu, 24 Aug 2023 15:25:05 +0200 Subject: [PATCH] also backing up, and removing circlesSafeOwner --- ..._add-safeBackupTableAndMoveSaveAddress.sql | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/api-db-migrations/20230814152100__add-safeBackupTableAndMoveSaveAddress.sql diff --git a/src/api-db-migrations/20230814152100__add-safeBackupTableAndMoveSaveAddress.sql b/src/api-db-migrations/20230814152100__add-safeBackupTableAndMoveSaveAddress.sql new file mode 100644 index 00000000..41485b0e --- /dev/null +++ b/src/api-db-migrations/20230814152100__add-safeBackupTableAndMoveSaveAddress.sql @@ -0,0 +1,69 @@ +-- migrate:up +ALTER TABLE "Profile" + ADD COLUMN "disabledCirclesSafeOwner" TEXT; + +CREATE OR REPLACE PROCEDURE sp_DisableProfileAndShop(address varchar(100)) +LANGUAGE plpgsql +AS $$ +BEGIN + -- Remove Session + DELETE FROM "Session" + WHERE "Session"."profileId" IN( + SELECT + "id" + FROM + "Profile" + WHERE + "circlesAddress" = address); + -- Copy circlesAddress to disabledCirclesAddress + UPDATE + "Profile" + SET + "disabledCirclesAddress" = "circlesAddress" + WHERE + "circlesAddress" = address; + -- Copy circlesSafeOwner to disabledCirclesSafeOwner + UPDATE + "Profile" + SET + "disabledCirclesSafeOwner" = "circlesSafeOwner" + WHERE + "circlesAddress" = address; + -- Set disabled status + UPDATE + "Profile" + SET + "status" = 'disabled' + WHERE + "circlesAddress" = address; + -- Remove circlesSafeOwner + UPDATE + "Profile" + SET + "circlesSafeOwner" = NULL + WHERE + "circlesAddress" = address; + -- Remove CirclesAddress + UPDATE + "Profile" + SET + "circlesAddress" = NULL + WHERE + "circlesAddress" = address; + -- Disable the Shop + UPDATE + "Profile" + SET + "shopEnabled" = FALSE + WHERE + id IN( + SELECT + "memberAtId" + FROM + "Membership" + WHERE + "memberAddress" = address + AND "isAdmin" = TRUE); +END +$$ +-- migrate:down