mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Finish working on backups side deletion feature, to be review, test and deply in RC for tests.
This commit is contained in:
@@ -5,6 +5,7 @@ import {enforceRetentionGFS} from "@/lib/tasks/database/retention-gsf";
|
||||
import {retentionPolicy} from "@/db/schema/07_database";
|
||||
import {eq, isNull} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {eventEmitter} from "../../../../app/api/events/route";
|
||||
|
||||
|
||||
export const retentionCleanTask = async () => {
|
||||
@@ -54,4 +55,5 @@ export async function enforceRetention(
|
||||
});
|
||||
break;
|
||||
}
|
||||
eventEmitter.emit('modification', {update: true});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {db} from "@/db";
|
||||
import {eq, lt, and, desc} from "drizzle-orm";
|
||||
import {eq, lt, and, desc, isNull} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {deleteBackupCronAction} from "@/lib/tasks/database/utils/delete";
|
||||
|
||||
@@ -9,7 +9,8 @@ export async function enforceRetentionDays(databaseId: string, days: number) {
|
||||
const expiredBackups = await db.query.backup.findMany({
|
||||
where: and(
|
||||
eq(drizzleDb.schemas.backup.databaseId, databaseId),
|
||||
lt(drizzleDb.schemas.backup.createdAt, cutoff)
|
||||
lt(drizzleDb.schemas.backup.createdAt, cutoff),
|
||||
isNull(drizzleDb.schemas.backup.deletedAt)
|
||||
),
|
||||
with: {
|
||||
database: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {db} from "@/db";
|
||||
import {subDays, subWeeks, subMonths, subYears, startOfWeek, startOfMonth, startOfYear} from "date-fns";
|
||||
import {eq, desc} from "drizzle-orm";
|
||||
import {eq, desc, isNull, and} from "drizzle-orm";
|
||||
import * as drizzleDb from "@/db";
|
||||
import {deleteBackupCronAction} from "@/lib/tasks/database/utils/delete";
|
||||
|
||||
@@ -11,7 +11,7 @@ export async function enforceRetentionGFS(databaseId: string, gfsSettings: {
|
||||
yearly: number;
|
||||
}) {
|
||||
const backups = await db.query.backup.findMany({
|
||||
where: eq(drizzleDb.schemas.backup.databaseId, databaseId),
|
||||
where: and(eq(drizzleDb.schemas.backup.databaseId, databaseId), isNull(drizzleDb.schemas.backup.deletedAt)),
|
||||
orderBy: desc(drizzleDb.schemas.backup.createdAt),
|
||||
with: {
|
||||
database: {
|
||||
|
||||
Reference in New Issue
Block a user