From b272f01a1885122c9fc6d83ddeba4b302188471d Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 1 Jul 2025 23:48:19 -0600 Subject: [PATCH] fix: update volume backup components for improved functionality - Refactored HandleVolumeBackups to use consistent naming for mount items. - Added an AlertBlock to RestoreVolumeBackups to inform users about potential volume name conflicts. - Updated mount retrieval logic in the mount router to enhance accuracy and efficiency in fetching volume mounts. --- .../volume-backups/handle-volume-backups.tsx | 7 ++----- .../volume-backups/restore-volume-backups.tsx | 4 ++++ apps/dokploy/server/api/routers/mount.ts | 17 ++++++++--------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx index f0f00bd26..cd7ca16b3 100644 --- a/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx +++ b/apps/dokploy/components/dashboard/application/volume-backups/handle-volume-backups.tsx @@ -550,11 +550,8 @@ export const HandleVolumeBackups = ({ {mounts?.map((mount) => ( - - {mount.volumeName} + + {mount.Name} ))} diff --git a/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx b/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx index 295833a39..7c45d0ceb 100644 --- a/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx +++ b/apps/dokploy/components/dashboard/application/volume-backups/restore-volume-backups.tsx @@ -44,6 +44,7 @@ import { toast } from "sonner"; import { z } from "zod"; import { type LogLine, parseLogs } from "../../docker/logs/utils"; import { formatBytes } from "../../database/backups/restore-backup"; +import { AlertBlock } from "@/components/shared/alert-block"; interface Props { id: string; @@ -169,6 +170,9 @@ export const RestoreVolumeBackups = ({ id, type, serverId }: Props) => { Select a destination and search for volume backup files + + Make sure the volume name is not being used by another container. +
diff --git a/apps/dokploy/server/api/routers/mount.ts b/apps/dokploy/server/api/routers/mount.ts index 63e16c9cb..7add3ab16 100644 --- a/apps/dokploy/server/api/routers/mount.ts +++ b/apps/dokploy/server/api/routers/mount.ts @@ -3,18 +3,17 @@ import { apiFindOneMount, apiRemoveMount, apiUpdateMount, - mounts, } from "@/server/db/schema"; import { createMount, deleteMount, + findApplicationById, findMountById, + getServiceContainer, updateMount, } from "@dokploy/server"; import { createTRPCRouter, protectedProcedure } from "../trpc"; import { z } from "zod"; -import { and, eq } from "drizzle-orm"; -import { db } from "@dokploy/server/db"; export const mountRouter = createTRPCRouter({ create: protectedProcedure @@ -40,11 +39,11 @@ export const mountRouter = createTRPCRouter({ allNamedByApplicationId: protectedProcedure .input(z.object({ applicationId: z.string().min(1) })) .query(async ({ input }) => { - return await db.query.mounts.findMany({ - where: and( - eq(mounts.applicationId, input.applicationId), - eq(mounts.type, "volume"), - ), - }); + const app = await findApplicationById(input.applicationId); + const container = await getServiceContainer(app.appName, app.serverId); + const mounts = container?.Mounts.filter( + (mount) => mount.Type === "volume" && mount.Source !== "", + ); + return mounts; }), });