diff --git a/backend/src/db/migrations/20240717184929_add-enforcement-level-secrets-policies.ts b/backend/src/db/migrations/20240717184929_add-enforcement-level-secrets-policies.ts index 4a1df888ac..ee668d1454 100644 --- a/backend/src/db/migrations/20240717184929_add-enforcement-level-secrets-policies.ts +++ b/backend/src/db/migrations/20240717184929_add-enforcement-level-secrets-policies.ts @@ -2,14 +2,22 @@ import { Knex } from "knex"; import { EnforcementLevel } from "@app/lib/types"; +import { TableName } from "../schemas"; + export async function up(knex: Knex): Promise { - await knex.schema.table("secret_approval_policies", (table) => { - table.specificType("enforcementLevel", "VARCHAR(10)").notNullable().defaultTo(EnforcementLevel.Hard); - }); + const hasColumn = await knex.schema.hasColumn(TableName.SecretApprovalPolicy, "enforcementLevel"); + if (!hasColumn) { + await knex.schema.table(TableName.SecretApprovalPolicy, (table) => { + table.string("enforcementLevel", 10).notNullable().defaultTo(EnforcementLevel.Hard); + }); + } } export async function down(knex: Knex): Promise { - await knex.schema.table("secret_approval_policies", (table) => { - table.dropColumn("enforcementLevel"); - }); + const hasColumn = await knex.schema.hasColumn(TableName.SecretApprovalPolicy, "enforcementLevel"); + if (hasColumn) { + await knex.schema.table(TableName.SecretApprovalPolicy, (table) => { + table.dropColumn("enforcementLevel"); + }); + } } diff --git a/backend/src/db/migrations/20240717194958_add-enforcement-level-access-policies.ts b/backend/src/db/migrations/20240717194958_add-enforcement-level-access-policies.ts index 9aeb8d51e3..83ef072010 100644 --- a/backend/src/db/migrations/20240717194958_add-enforcement-level-access-policies.ts +++ b/backend/src/db/migrations/20240717194958_add-enforcement-level-access-policies.ts @@ -2,14 +2,22 @@ import { Knex } from "knex"; import { EnforcementLevel } from "@app/lib/types"; +import { TableName } from "../schemas"; + export async function up(knex: Knex): Promise { - await knex.schema.table("access_approval_policies", (table) => { - table.specificType("enforcementLevel", "VARCHAR(10)").notNullable().defaultTo(EnforcementLevel.Hard); - }); + const hasColumn = await knex.schema.hasColumn(TableName.AccessApprovalPolicy, "enforcementLevel"); + if (!hasColumn) { + await knex.schema.table(TableName.AccessApprovalPolicy, (table) => { + table.string("enforcementLevel", 10).notNullable().defaultTo(EnforcementLevel.Hard); + }); + } } export async function down(knex: Knex): Promise { - await knex.schema.table("access_approval_policies", (table) => { - table.dropColumn("enforcementLevel"); - }); + const hasColumn = await knex.schema.hasColumn(TableName.AccessApprovalPolicy, "enforcementLevel"); + if (hasColumn) { + await knex.schema.table(TableName.AccessApprovalPolicy, (table) => { + table.dropColumn("enforcementLevel"); + }); + } }