mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Merge branch 'main' into poc/onboarding-setup
# Conflicts: # src/lib/tasks/cleaning/index.ts
This commit is contained in:
+1
-1
@@ -33,5 +33,5 @@ keywords:
|
||||
- web-ui
|
||||
- agent
|
||||
license: Apache-2.0
|
||||
version: 1.20.0
|
||||
version: 1.20.1
|
||||
date-released: '2026-03-02'
|
||||
|
||||
@@ -108,7 +108,6 @@ export const PATCH = withAgentCheck(async (request: Request, {params, agent}: {
|
||||
}) => {
|
||||
try {
|
||||
const body: BodyPatch = await request.json();
|
||||
log.info({data: body}, "Body from PATH in backup route");
|
||||
|
||||
const status = body.status
|
||||
const backupId = body.backupId
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "portabase",
|
||||
"version": "1.20.0",
|
||||
"version": "1.20.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev --turbopack -p 8887",
|
||||
|
||||
@@ -1,33 +1,45 @@
|
||||
import { db } from "@/db";
|
||||
import { and, eq, isNotNull } from "drizzle-orm";
|
||||
import {db} from "@/db";
|
||||
import {and, eq, isNotNull, isNull} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import { withUpdatedAt } from "@/db/utils";
|
||||
import { logger } from "@/lib/logger";
|
||||
import {withUpdatedAt} from "@/db/utils";
|
||||
import {logger} from "@/lib/logger";
|
||||
|
||||
const log = logger.child({ module: "tasks/cleaning" });
|
||||
const log = logger.child({module: "tasks/cleaning"});
|
||||
|
||||
export const backupCleanTask = async () => {
|
||||
try {
|
||||
const backups = 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}`);
|
||||
try {
|
||||
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: ${ongoingBackups.length}`);
|
||||
|
||||
for (const backup of backups) {
|
||||
await db
|
||||
.update(drizzleDb.schemas.backup)
|
||||
.set(
|
||||
withUpdatedAt({
|
||||
status: "failed",
|
||||
}),
|
||||
)
|
||||
.where(eq(drizzleDb.schemas.backup.id, backup.id));
|
||||
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;
|
||||
}
|
||||
} catch (e: any) {
|
||||
log.error({ name: "backupCleanTask", error: e }, `Backup cleanup failed`);
|
||||
throw e;
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user