From 1e593e6d75bcdc27aa914fbd9b868c7d070018e7 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Wed, 30 Aug 2023 13:41:28 +0200 Subject: [PATCH] Clean up if project creation fails --- lib/www/server/lib/db/project/create.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/www/server/lib/db/project/create.js b/lib/www/server/lib/db/project/create.js index 18a6f4a..8f584d7 100644 --- a/lib/www/server/lib/db/project/create.js +++ b/lib/www/server/lib/db/project/create.js @@ -99,6 +99,17 @@ async function createProjectSchema (projectDefinition) { } } +async function dropProjectSchema (projectDefinition) { + const sql = ` + DROP SCHEMA ${projectDefinition.schema} CASCADE; + `; + try { + return await pool.query(sql); + } catch (err) { + console.error("dropProjectSchema", err); + } +} + async function addProjectToList (projectDefinition) { const sql = ` INSERT INTO public.projects (pid, name, schema, meta) VALUES (LOWER($1), $2, $3, $4); @@ -135,6 +146,7 @@ async function create (projectDefinition) { await addProjectToList(projectDefinition); } catch (err) { DEBUG(err); + await dropProjectSchema(projectDefinition); throw { status: 500, message: err.message ?? "Failed to create database for new project", detail: err.detail } } }