feat: implement volume backup and restore functionalities

- Added backupVolume and restoreVolume functions to handle the backup and restoration of volume data.
- Introduced a new index file to streamline exports for volume backup utilities.
- Updated volume backup logic to include scheduling and improved user feedback during operations.
- Refactored existing volume backup utilities for better organization and clarity.
This commit is contained in:
Mauricio Siu
2025-07-02 00:23:27 -06:00
parent 7726c8db21
commit c5311f2a9f
7 changed files with 233 additions and 213 deletions

View File

@@ -7,6 +7,7 @@ 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({
@@ -39,7 +40,16 @@ export const createVolumeBackup = async (
const newVolumeBackup = await db
.insert(volumeBackups)
.values(volumeBackup)
.returning();
.returning()
.then((e) => e[0]);
await schedule({
cronSchedule: backup.schedule,
backupId: backup.backupId,
type: "backup",
});
scheduleBackup(backup);
return newVolumeBackup;
};