diff --git a/packages/server/src/api/controllers/deploy/index.ts b/packages/server/src/api/controllers/deploy/index.ts index a87e7fbd7d..209aedfb62 100644 --- a/packages/server/src/api/controllers/deploy/index.ts +++ b/packages/server/src/api/controllers/deploy/index.ts @@ -8,6 +8,7 @@ import { } from "../../../automations/utils" import { backups } from "@budibase/pro" import { AppBackupTrigger } from "@budibase/types" +import sdk from "../../../sdk" // the max time we can wait for an invalidation to complete before considering it failed const MAX_PENDING_TIME_MS = 30 * 60000 @@ -86,6 +87,11 @@ async function initDeployedApp(prodAppId: any) { } await Promise.all(promises) console.log("Enabled cron triggers for deployed app..") + // sync the automations back to the dev DB - since there is now cron + // information attached + await sdk.applications.syncApp(dbCore.getDevAppID(prodAppId), { + automationOnly: true, + }) } async function deployApp(deployment: any, userId: string) { diff --git a/packages/server/src/sdk/app/applications/sync.ts b/packages/server/src/sdk/app/applications/sync.ts index 5261eabb3d..6fb3576ae6 100644 --- a/packages/server/src/sdk/app/applications/sync.ts +++ b/packages/server/src/sdk/app/applications/sync.ts @@ -2,7 +2,10 @@ import env from "../../../environment" import { db as dbCore, context } from "@budibase/backend-core" import sdk from "../../" -export async function syncApp(appId: string) { +export async function syncApp( + appId: string, + opts?: { automationOnly?: boolean } +) { if (env.DISABLE_AUTO_PROD_APP_SYNC) { return { message: @@ -33,7 +36,12 @@ export async function syncApp(appId: string) { }) let error try { - await replication.replicate(replication.appReplicateOpts()) + const replOpts = replication.appReplicateOpts() + if (opts?.automationOnly) { + replOpts.filter = (doc: any) => + doc._id.startsWith(dbCore.DocumentType.AUTOMATION) + } + await replication.replicate(replOpts) } catch (err) { error = err } finally {