[FEATURE] - Adding fileSize in backup model in order to display it.

This commit is contained in:
charlesgauthereau
2026-01-02 15:32:36 +01:00
parent c471423775
commit 619c32f09d
7 changed files with 1951 additions and 2 deletions
+2 -1
View File
@@ -118,12 +118,12 @@ export async function POST(
{status: 400}
);
}
const fileSizeBytes = file.size;
const fileExtension = getFileExtension(database.dbms)
const decryptedFile = await decryptedDump(file, aesKeyHex, ivHex, fileExtension);
const uuid = uuidv4();
const fileName = `${uuid}${fileExtension}`;
const buffer = Buffer.from(await decryptedFile.arrayBuffer());
const [settings] = await db.select().from(drizzleDb.schemas.setting).where(eq(drizzleDb.schemas.setting.name, "system")).limit(1);
if (!settings) {
throw new Error("System settings not found.");
@@ -149,6 +149,7 @@ export async function POST(
.update(drizzleDb.schemas.backup)
.set(withUpdatedAt({
file: fileName,
fileSize: fileSizeBytes,
status: 'success',
}))
.where(eq(drizzleDb.schemas.backup.id, backup.id));
@@ -0,0 +1 @@
ALTER TABLE "backups" ADD COLUMN "file_size" integer;
File diff suppressed because it is too large Load Diff
+7
View File
@@ -113,6 +113,13 @@
"when": 1766426190521,
"tag": "0015_absurd_next_avengers",
"breakpoints": true
},
{
"idx": 16,
"version": "7",
"when": 1767363779637,
"tag": "0016_broken_morgan_stark",
"breakpoints": true
}
]
}
+1
View File
@@ -38,6 +38,7 @@ export const backup = pgTable(
id: uuid("id").primaryKey().defaultRandom(),
status: statusEnum("status").default("waiting").notNull(),
file: text("file"),
fileSize: integer("file_size"),
databaseId: uuid("database_id")
.notNull()
.references(() => database.id, {onDelete: "cascade"}),
+9 -1
View File
@@ -31,7 +31,7 @@ import {cn} from "@/lib/utils";
import {Tooltip, TooltipContent, TooltipProvider, TooltipTrigger} from "@/components/ui/tooltip";
import {MemberWithUser} from "@/db/schema/03_organization";
import {formatLocalizedDate} from "@/utils/date-formatting";
import {isImportedFilename} from "@/utils/text";
import {formatBytes, isImportedFilename} from "@/utils/text";
export function backupColumns(
@@ -73,6 +73,14 @@ export function backupColumns(
return isImported ? `${reference} (imported)` : `${reference}`
},
},
{
accessorKey: "fileSize",
header: "Size",
cell: ({row}) => {
console.log(row.original.fileSize)
return formatBytes(row.getValue("fileSize"))
},
},
{
accessorKey: "createdAt",
header: "Created At",
+10
View File
@@ -15,4 +15,14 @@ export function isUUID(str: string) {
export function isImportedFilename(name: string): boolean {
return name.startsWith("imported_");
}
export function formatBytes(bytes: number | null, decimals = 2): string {
if (!bytes) return "N/A";
if (bytes === 0) return "0 Bytes";
const k = 1024;
const dm = decimals < 0 ? 0 : decimals;
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
}