From ea91b01461760e2365653d871f299d25a50b92c8 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sat, 21 Jun 2025 20:16:27 -0600 Subject: [PATCH] feat(backup): implement keepLatestNBackups function to manage backup retention - Added keepLatestNBackups function calls after each backup operation for Postgres, MySQL, MariaDB, Compose, and MongoDB to ensure only the latest N backups are retained. --- apps/dokploy/server/api/routers/backup.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/dokploy/server/api/routers/backup.ts b/apps/dokploy/server/api/routers/backup.ts index af59d6c7..2f1d2f80 100644 --- a/apps/dokploy/server/api/routers/backup.ts +++ b/apps/dokploy/server/api/routers/backup.ts @@ -22,6 +22,7 @@ import { findPostgresByBackupId, findPostgresById, findServerById, + keepLatestNBackups, removeBackupById, removeScheduleBackup, runMariadbBackup, @@ -197,6 +198,8 @@ export const backupRouter = createTRPCRouter({ const backup = await findBackupById(input.backupId); const postgres = await findPostgresByBackupId(backup.backupId); await runPostgresBackup(postgres, backup); + + await keepLatestNBackups(backup, postgres?.serverId); return true; } catch (error) { const message = @@ -217,6 +220,7 @@ export const backupRouter = createTRPCRouter({ const backup = await findBackupById(input.backupId); const mysql = await findMySqlByBackupId(backup.backupId); await runMySqlBackup(mysql, backup); + await keepLatestNBackups(backup, mysql?.serverId); return true; } catch (error) { throw new TRPCError({ @@ -233,6 +237,7 @@ export const backupRouter = createTRPCRouter({ const backup = await findBackupById(input.backupId); const mariadb = await findMariadbByBackupId(backup.backupId); await runMariadbBackup(mariadb, backup); + await keepLatestNBackups(backup, mariadb?.serverId); return true; } catch (error) { throw new TRPCError({ @@ -249,6 +254,7 @@ export const backupRouter = createTRPCRouter({ const backup = await findBackupById(input.backupId); const compose = await findComposeByBackupId(backup.backupId); await runComposeBackup(compose, backup); + await keepLatestNBackups(backup, compose?.serverId); return true; } catch (error) { throw new TRPCError({ @@ -265,6 +271,7 @@ export const backupRouter = createTRPCRouter({ const backup = await findBackupById(input.backupId); const mongo = await findMongoByBackupId(backup.backupId); await runMongoBackup(mongo, backup); + await keepLatestNBackups(backup, mongo?.serverId); return true; } catch (error) { throw new TRPCError({