diff --git a/backend/src/db/migrations/20241005170802_kms-keys-temp-slug-col.ts b/backend/src/db/migrations/20241005170802_kms-keys-temp-slug-col.ts index 1ddf843c0..45af3e4b8 100644 --- a/backend/src/db/migrations/20241005170802_kms-keys-temp-slug-col.ts +++ b/backend/src/db/migrations/20241005170802_kms-keys-temp-slug-col.ts @@ -1,9 +1,5 @@ import { Knex } from "knex"; -import { - createKmsKeyNameSyncTrigger, - dropKmsKeyNameSyncTrigger -} from "@app/db/migrations/utils/kmsKeySlugNameTransition"; import { TableName } from "@app/db/schemas"; export async function up(knex: Knex): Promise { @@ -17,8 +13,6 @@ export async function up(knex: Knex): Promise { table.string("slug", 32); }) .then(() => knex(TableName.KmsKey).update("slug", knex.ref("name"))); - - await createKmsKeyNameSyncTrigger(knex); } } } @@ -28,8 +22,6 @@ export async function down(knex: Knex): Promise { const hasSlug = await knex.schema.hasColumn(TableName.KmsKey, "slug"); if (hasSlug) { - await dropKmsKeyNameSyncTrigger(knex); - await knex.schema.alterTable(TableName.KmsKey, (table) => { table.dropColumn("slug"); }); diff --git a/backend/src/db/migrations/utils/kmsKeySlugNameTransition.ts b/backend/src/db/migrations/utils/kmsKeySlugNameTransition.ts deleted file mode 100644 index 76cc9ea5f..000000000 --- a/backend/src/db/migrations/utils/kmsKeySlugNameTransition.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Knex } from "knex"; - -import { TableName } from "@app/db/schemas"; - -// These utils are meant to mitigate any delays between postgres update and application deployement for the KMS feature -// where slug col was migrated to name col - -// this is a postgres function to keep name in-sync with slug during transition period -export const createKmsKeyNameSyncTrigger = async (knex: Knex) => { - // function to update name if slug is updated - await knex.raw(` - CREATE OR REPLACE FUNCTION on_update_kms_key_slug() RETURNS TRIGGER AS $$ BEGIN NEW."name" = NEW."slug"; - RETURN NEW; - END; - $$ LANGUAGE plpgsql; - `); - - // function to set name if kms key created with slug - await knex.raw(` - CREATE OR REPLACE FUNCTION on_insert_kms_key() RETURNS TRIGGER AS $$ BEGIN NEW."name" = coalesce(NEW."name", NEW."slug"); - RETURN NEW; - END; - $$ LANGUAGE plpgsql; - `); - - // create trigger to update name if slug is updated - await knex.raw(` - CREATE TRIGGER "${TableName.KmsKey}_update_name" - BEFORE UPDATE OF "slug" ON ${TableName.KmsKey} - FOR EACH ROW - EXECUTE PROCEDURE on_update_kms_key_slug(); - `); - - // create trigger to set name if key created with slug - await knex.raw(` - CREATE TRIGGER "${TableName.KmsKey}_set_name" - BEFORE INSERT ON ${TableName.KmsKey} - FOR EACH ROW - EXECUTE PROCEDURE on_insert_kms_key(); - `); -}; - -export const dropKmsKeyNameSyncTrigger = async (knex: Knex) => { - // drop triggers - await knex.raw(`DROP TRIGGER IF EXISTS "${TableName.KmsKey}_update_name" ON ${TableName.KmsKey}`); - await knex.raw(`DROP TRIGGER IF EXISTS "${TableName.KmsKey}_set_name" ON ${TableName.KmsKey}`); - - // drop functions - await knex.raw(` - DROP FUNCTION IF EXISTS on_update_kms_key_slug() CASCADE; - `); - await knex.raw(` - DROP FUNCTION IF EXISTS on_insert_kms_key() CASCADE; - `); -};