feat: enhance volume backup scheduling and management

- Added initVolumeBackupsCronJobs function to initialize scheduled volume backups on server startup.
- Updated volumeBackupsRouter to handle scheduling and removal of volume backup jobs based on user input.
- Improved create and update volume backup logic to include scheduling functionality for both cloud and local environments.
- Introduced utility functions for scheduling and removing volume backup jobs, enhancing overall backup management.
This commit is contained in:
Mauricio Siu
2025-07-02 00:36:46 -06:00
parent c5311f2a9f
commit 6521491e2f
6 changed files with 104 additions and 16 deletions

View File

@@ -7,7 +7,6 @@ import {
import { db } from "../db";
import { TRPCError } from "@trpc/server";
import type { z } from "zod";
import { scheduleBackup } from "../utils/backups/utils";
export const findVolumeBackupById = async (volumeBackupId: string) => {
const volumeBackup = await db.query.volumeBackups.findFirst({
@@ -43,14 +42,6 @@ export const createVolumeBackup = async (
.returning()
.then((e) => e[0]);
await schedule({
cronSchedule: backup.schedule,
backupId: backup.backupId,
type: "backup",
});
scheduleBackup(backup);
return newVolumeBackup;
};
@@ -64,8 +55,10 @@ export const updateVolumeBackup = async (
volumeBackupId: string,
volumeBackup: z.infer<typeof updateVolumeBackupSchema>,
) => {
await db
return await db
.update(volumeBackups)
.set(volumeBackup)
.where(eq(volumeBackups.volumeBackupId, volumeBackupId));
.where(eq(volumeBackups.volumeBackupId, volumeBackupId))
.returning()
.then((e) => e[0]);
};