fix: clean up failed and ongoing backups

This commit is contained in:
charles-gauthereau
2026-06-24 08:32:40 +02:00
parent c7d10efefe
commit e31245b492
2 changed files with 18 additions and 4 deletions
+18 -3
View File
@@ -8,21 +8,36 @@ const log = logger.child({module: "tasks/cleaning"});
export const backupCleanTask = async () => {
try {
const backups = await db.query.backup.findMany({
const ongoingBackups = await db.query.backup.findMany({
where: and(
isNotNull(drizzleDb.schemas.backup.deletedAt),
eq(drizzleDb.schemas.backup.status, "ongoing")
)
});
log.debug(`Backups to clean: ${backups.length}`);
log.debug(`Backups to clean: ${ongoingBackups.length}`);
for (const backup of backups) {
for (const backup of ongoingBackups) {
await db.update(drizzleDb.schemas.backup).set(withUpdatedAt({
status: "failed",
}))
.where(eq(drizzleDb.schemas.backup.id, backup.id));
}
const failedBackups = await db.query.backup.findMany({
where: and(
isNull(drizzleDb.schemas.backup.deletedAt),
eq(drizzleDb.schemas.backup.status, "failed")
)
});
log.debug(`Failed backups to clean: ${failedBackups.length}`);
for (const backup of failedBackups) {
await db.update(drizzleDb.schemas.backup).set(withUpdatedAt({
deletedAt: new Date(),
}))
.where(eq(drizzleDb.schemas.backup.id, backup.id));
}
} catch (e: any) {
log.error({name: "backupCleanTask", error: e},`Backup cleanup failed`);
throw e;