From 343957ab8b109fd64e5fdcf8948ed7b2093e2cec Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Tue, 25 Jul 2023 12:33:05 +0200 Subject: [PATCH] update backups --- apps/api/src/lib/common.ts | 12 +++--------- apps/api/src/routes/api/v1/databases/handlers.ts | 4 ++-- .../databases/[id]/_Databases/_Databases.svelte | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index bcefe9e6f..b5c78a5f2 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -1943,11 +1943,11 @@ export function generateSecrets( return envs; } -export async function backupPostgresqlDatabase(database, reply) { +export async function backupDatabaseNow(database, reply) { const backupFolder = '/tmp' const fileName = `${database.id}-${new Date().getTime()}.gz` const backupFileName = `${backupFolder}/${fileName}` - console.log({ database }) + const backupStorageFilename = `/app/backups/${fileName}` let command = null switch (database?.type) { case 'postgresql': @@ -1972,17 +1972,11 @@ export async function backupPostgresqlDatabase(database, reply) { dockerId: database.destinationDockerId, command, }); - const copyCommand = `docker cp ${database.id}:${backupFileName} ${backupFileName}` + const copyCommand = `docker cp ${database.id}:${backupFileName} ${backupStorageFilename}` await executeCommand({ dockerId: database.destinationDockerId, command: copyCommand }); - if (isDev) { - await executeCommand({ - dockerId: database.destinationDockerId, - command: `docker cp ${database.id}:${backupFileName} /app/backups/` - }); - } const stream = fsNormal.createReadStream(backupFileName); reply.header('Content-Type', 'application/octet-stream'); reply.header('Content-Disposition', `attachment; filename=${fileName}`); diff --git a/apps/api/src/routes/api/v1/databases/handlers.ts b/apps/api/src/routes/api/v1/databases/handlers.ts index 126e34a93..d27aa9813 100644 --- a/apps/api/src/routes/api/v1/databases/handlers.ts +++ b/apps/api/src/routes/api/v1/databases/handlers.ts @@ -5,7 +5,7 @@ import yaml from 'js-yaml'; import fs from 'fs/promises'; import { ComposeFile, - backupPostgresqlDatabase, + backupDatabaseNow, createDirectories, decrypt, defaultComposeConfiguration, @@ -362,7 +362,7 @@ export async function backupDatabase(request: FastifyRequest, reply: Fas }); if (database.dbUserPassword) database.dbUserPassword = decrypt(database.dbUserPassword); if (database.rootUserPassword) database.rootUserPassword = decrypt(database.rootUserPassword); - return await backupPostgresqlDatabase(database, reply); + return await backupDatabaseNow(database, reply); } catch ({ status, message }) { return errorHandler({ status, message }); } diff --git a/apps/ui/src/routes/databases/[id]/_Databases/_Databases.svelte b/apps/ui/src/routes/databases/[id]/_Databases/_Databases.svelte index 6eddda7a1..f3bd21344 100644 --- a/apps/ui/src/routes/databases/[id]/_Databases/_Databases.svelte +++ b/apps/ui/src/routes/databases/[id]/_Databases/_Databases.svelte @@ -138,7 +138,7 @@ loading.backup = true; addToast({ message: - 'Backup will be downloaded soon and saved to /var/lib/docker/volumes/coolify-local-backup/ on the host system.', + 'Backup will be downloaded soon and saved to /var/lib/docker/volumes/coolify-local-backup/_data/ on the host system.', type: 'success', timeout: 15000 });