From 19bf4f27b683330170d3117d7b4de2e18cd3d311 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 27 Apr 2025 23:06:38 -0600 Subject: [PATCH] Update UpdateBackup component to enforce DatabaseType casting for backup databaseType. Modify backups schema to allow optional metadata field, enhancing flexibility for various database types. --- .../database/backups/update-backup.tsx | 2 +- packages/server/src/db/schema/backups.ts | 36 ++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/apps/dokploy/components/dashboard/database/backups/update-backup.tsx b/apps/dokploy/components/dashboard/database/backups/update-backup.tsx index d3ce1aa1..a57cf01d 100644 --- a/apps/dokploy/components/dashboard/database/backups/update-backup.tsx +++ b/apps/dokploy/components/dashboard/database/backups/update-backup.tsx @@ -221,7 +221,7 @@ export const UpdateBackup = ({ backupId, refetch }: Props) => { databaseType: backup?.backupType === "compose" ? selectedDatabaseType - : backup?.databaseType, + : (backup?.databaseType as DatabaseType), }) .then(async () => { toast.success("Backup Updated"); diff --git a/packages/server/src/db/schema/backups.ts b/packages/server/src/db/schema/backups.ts index 94461043..6dca5caa 100644 --- a/packages/server/src/db/schema/backups.ts +++ b/packages/server/src/db/schema/backups.ts @@ -71,22 +71,25 @@ export const backups = pgTable("backup", { }), userId: text("userId").references(() => users_temp.id), // Only for compose backups - metadata: jsonb("metadata").$type<{ - postgres?: { - databaseUser: string; - }; - mariadb?: { - databaseUser: string; - databasePassword: string; - }; - mongo?: { - databaseUser: string; - databasePassword: string; - }; - mysql?: { - databaseRootPassword: string; - }; - }>(), + metadata: jsonb("metadata").$type< + | { + postgres?: { + databaseUser: string; + }; + mariadb?: { + databaseUser: string; + databasePassword: string; + }; + mongo?: { + databaseUser: string; + databasePassword: string; + }; + mysql?: { + databaseRootPassword: string; + }; + } + | undefined + >(), }); export const backupsRelations = relations(backups, ({ one }) => ({ @@ -134,6 +137,7 @@ const createSchema = createInsertSchema(backups, { mysqlId: z.string().optional(), mongoId: z.string().optional(), userId: z.string().optional(), + metadata: z.object({}).optional(), }); export const apiCreateBackup = createSchema.pick({