From 517c613d058fe764e580db96bf082864ce52ece5 Mon Sep 17 00:00:00 2001 From: x032205 Date: Thu, 15 May 2025 22:50:09 -0400 Subject: [PATCH] migration fix --- .../20250515164622_select-org-products.ts | 52 ++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/backend/src/db/migrations/20250515164622_select-org-products.ts b/backend/src/db/migrations/20250515164622_select-org-products.ts index 251d66208..c290a4ee2 100644 --- a/backend/src/db/migrations/20250515164622_select-org-products.ts +++ b/backend/src/db/migrations/20250515164622_select-org-products.ts @@ -3,23 +3,51 @@ import { Knex } from "knex"; import { TableName } from "../schemas"; export async function up(knex: Knex): Promise { + const columns = await knex.table(TableName.Organization).columnInfo(); + await knex.schema.alterTable(TableName.Organization, (t) => { - t.boolean("secretsProductEnabled").defaultTo(true); - t.boolean("pkiProductEnabled").defaultTo(true); - t.boolean("kmsProductEnabled").defaultTo(true); - t.boolean("sshProductEnabled").defaultTo(true); - t.boolean("scannerProductEnabled").defaultTo(true); - t.boolean("shareSecretsProductEnabled").defaultTo(true); + if (!columns.secretsProductEnabled) { + t.boolean("secretsProductEnabled").defaultTo(true); + } + if (!columns.pkiProductEnabled) { + t.boolean("pkiProductEnabled").defaultTo(true); + } + if (!columns.kmsProductEnabled) { + t.boolean("kmsProductEnabled").defaultTo(true); + } + if (!columns.sshProductEnabled) { + t.boolean("sshProductEnabled").defaultTo(true); + } + if (!columns.scannerProductEnabled) { + t.boolean("scannerProductEnabled").defaultTo(true); + } + if (!columns.shareSecretsProductEnabled) { + t.boolean("shareSecretsProductEnabled").defaultTo(true); + } }); } export async function down(knex: Knex): Promise { + const columns = await knex.table(TableName.Organization).columnInfo(); + await knex.schema.alterTable(TableName.Organization, (t) => { - t.dropColumn("secretsProductEnabled"); - t.dropColumn("pkiProductEnabled"); - t.dropColumn("kmsProductEnabled"); - t.dropColumn("sshProductEnabled"); - t.dropColumn("scannerProductEnabled"); - t.dropColumn("shareSecretsProductEnabled"); + if (columns.secretsProductEnabled) { + t.dropColumn("secretsProductEnabled"); + } + if (columns.pkiProductEnabled) { + t.dropColumn("pkiProductEnabled"); + } + if (columns.kmsProductEnabled) { + t.dropColumn("kmsProductEnabled"); + } + if (columns.sshProductEnabled) { + t.dropColumn("sshProductEnabled"); + } + if (columns.scannerProductEnabled) { + t.dropColumn("scannerProductEnabled"); + } + if (columns.shareSecretsProductEnabled) { + t.dropColumn("shareSecretsProductEnabled"); + } }); }