From 80ddadbe06d7521428b6e63d0229d5d148f36c4e Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 5 Jun 2024 16:57:16 +0100 Subject: [PATCH] Updating app migration to use a slightly different mechanism to allow disabling the migration pipeline. --- packages/server/src/appMigrations/index.ts | 6 ++++++ packages/server/src/appMigrations/migrations.ts | 12 +++++------- packages/server/src/middleware/appMigrations.ts | 6 ++++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/server/src/appMigrations/index.ts b/packages/server/src/appMigrations/index.ts index 0758b9f324..74e0efe422 100644 --- a/packages/server/src/appMigrations/index.ts +++ b/packages/server/src/appMigrations/index.ts @@ -10,8 +10,14 @@ export * from "./appMigrationMetadata" export type AppMigration = { id: string func: () => Promise + // disabled so that by default all migrations listed are enabled + disabled?: boolean } +// all migrations must be enabled for migrations to run +export const migrationsEnabled = (): boolean => + MIGRATIONS.find(m => m.disabled) == null + export const getLatestMigrationId = () => MIGRATIONS.map(m => m.id) .sort() diff --git a/packages/server/src/appMigrations/migrations.ts b/packages/server/src/appMigrations/migrations.ts index 48b7f8f0b2..14eb9d0923 100644 --- a/packages/server/src/appMigrations/migrations.ts +++ b/packages/server/src/appMigrations/migrations.ts @@ -6,12 +6,10 @@ import { AppMigration } from "." import m20240604153647_initial_sqs from "./migrations/20240604153647_initial_sqs" // Migrations will be executed sorted by ID -export const MIGRATIONS: AppMigration[] = [] - -// only run the SQS migration if SQS is enabled -if (env.SQS_SEARCH_ENABLE) { - MIGRATIONS.push({ +export const MIGRATIONS: AppMigration[] = [ + { id: "20240604153647_initial_sqs", func: m20240604153647_initial_sqs, - }) -} + disabled: !env.SQS_SEARCH_ENABLE, + }, +] diff --git a/packages/server/src/middleware/appMigrations.ts b/packages/server/src/middleware/appMigrations.ts index 1fb13094c6..5ec3126fc7 100644 --- a/packages/server/src/middleware/appMigrations.ts +++ b/packages/server/src/middleware/appMigrations.ts @@ -1,11 +1,13 @@ import { UserCtx } from "@budibase/types" -import { checkMissingMigrations } from "../appMigrations" +import { checkMissingMigrations, migrationsEnabled } from "../appMigrations" import { env } from "@budibase/backend-core" export default async (ctx: UserCtx, next: any) => { const { appId } = ctx - if (env.SKIP_APP_MIGRATIONS) { + // migrations can be disabled via environment variable, or can be disabled + // due to some of the migrations not being ready to run - disables all migrations + if (env.SKIP_APP_MIGRATIONS || !migrationsEnabled()) { return next() }