feat: backup in progress status

This commit is contained in:
Nicolas Meienberger
2025-11-08 10:33:08 +01:00
parent 42497be4b5
commit ba08c97681
8 changed files with 43 additions and 13 deletions

View File

@@ -88,7 +88,7 @@ export const backupSchedulesTable = sqliteTable("backup_schedules_table", {
excludePatterns: text("exclude_patterns", { mode: "json" }).$type<string[]>().default([]),
includePatterns: text("include_patterns", { mode: "json" }).$type<string[]>().default([]),
lastBackupAt: int("last_backup_at", { mode: "number" }),
lastBackupStatus: text("last_backup_status").$type<"success" | "error">(),
lastBackupStatus: text("last_backup_status").$type<"success" | "error" | "in_progress">(),
lastBackupError: text("last_backup_error"),
nextBackupAt: int("next_backup_at", { mode: "number" }),
createdAt: int("created_at", { mode: "number" }).notNull().default(sql`(unixepoch())`),

View File

@@ -25,7 +25,7 @@ const backupScheduleSchema = type({
excludePatterns: "string[] | null",
includePatterns: "string[] | null",
lastBackupAt: "number | null",
lastBackupStatus: "'success' | 'error' | null",
lastBackupStatus: "'success' | 'error' | 'in_progress' | null",
lastBackupError: "string | null",
nextBackupAt: "number | null",
createdAt: "number",

View File

@@ -181,6 +181,11 @@ const executeBackup = async (scheduleId: number, manual = false) => {
logger.info(`Starting backup for volume ${volume.name} to repository ${repository.name}`);
await db
.update(backupSchedulesTable)
.set({ lastBackupStatus: "in_progress", updatedAt: Date.now() })
.where(eq(backupSchedulesTable.id, scheduleId));
try {
const volumePath = getVolumePath(volume.name);