From 0b0298423ed75eed6d112a04dda998b8a23b20ea Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Sun, 2 Nov 2025 16:24:12 -0600 Subject: [PATCH] feat(db manual fixes): added a way to fix manual db changes as needed --- app/main.ts | 8 +++++++- app/src/internal/system/utlis/addListeners.ts | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/main.ts b/app/main.ts index 41f45b5..0f9eaff 100644 --- a/app/main.ts +++ b/app/main.ts @@ -17,7 +17,10 @@ import { printers } from "./src/internal/ocp/printers/printers.js"; import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js"; import { baseModules } from "./src/internal/system/controller/modules/baseModules.js"; import { baseSettings } from "./src/internal/system/controller/settings/baseSettings.js"; -import { addListeners } from "./src/internal/system/utlis/addListeners.js"; +import { + addListeners, + manualFixes, +} from "./src/internal/system/utlis/addListeners.js"; import { swaggerOptions } from "./src/pkg/apiDocs/swaggerOptions.js"; import { auth } from "./src/pkg/auth/auth.js"; import { db } from "./src/pkg/db/db.js"; @@ -205,6 +208,9 @@ const main = async () => { v1Listener(); addListeners(); userMigrate(); + + // some temp fixes + manualFixes(); }, 5 * 1000); // start the server up diff --git a/app/src/internal/system/utlis/addListeners.ts b/app/src/internal/system/utlis/addListeners.ts index 1a28ab6..d7045d0 100644 --- a/app/src/internal/system/utlis/addListeners.ts +++ b/app/src/internal/system/utlis/addListeners.ts @@ -59,3 +59,21 @@ export const addListeners = async () => { log.info({}, "Error deleting bad inv data"); } }; + +export const manualFixes = async () => { + const fixQuery = `ALTER TABLE "serverData" ADD CONSTRAINT "serverData_name_unique" UNIQUE("name");`; + + const log = createLogger({ module: "utils", subModule: "manual fixes" }); + const client = new Client({ + connectionString: `postgresql://${process.env.DATABASE_USER}:${process.env.DATABASE_PASSWORD}@${process.env.DATABASE_HOST}:${process.env.DATABASE_PORT}/${process.env.DATABASE_DB}`, + }); + + await client.connect(); + + try { + log.info({}, "Running the manual fix"); + await client.query(fixQuery); + } catch (e) { + log.info({ error: e }, "Fix was not completed"); + } +};