From dcdbed047bff66eda5e5f824bd58e252d913a6d4 Mon Sep 17 00:00:00 2001 From: HarikrishnanD Date: Tue, 4 Nov 2025 16:06:01 +0530 Subject: [PATCH] fix: change backup file naming to Windows-compatible format --- packages/server/src/utils/backups/compose.ts | 3 ++- packages/server/src/utils/backups/mariadb.ts | 3 ++- packages/server/src/utils/backups/mongo.ts | 3 ++- packages/server/src/utils/backups/mysql.ts | 3 ++- packages/server/src/utils/backups/postgres.ts | 3 ++- packages/server/src/utils/volume-backups/backup.ts | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/server/src/utils/backups/compose.ts b/packages/server/src/utils/backups/compose.ts index 1963f2c91..459cd881d 100644 --- a/packages/server/src/utils/backups/compose.ts +++ b/packages/server/src/utils/backups/compose.ts @@ -19,7 +19,8 @@ export const runComposeBackup = async ( const project = await findProjectById(environment.projectId); const { prefix, databaseType } = backup; const destination = backup.destination; - const backupFileName = `${new Date().toISOString()}.sql.gz`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${timestamp}.sql.gz`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; const deployment = await createDeploymentBackup({ backupId: backup.backupId, diff --git a/packages/server/src/utils/backups/mariadb.ts b/packages/server/src/utils/backups/mariadb.ts index 2353821e5..7f086ea58 100644 --- a/packages/server/src/utils/backups/mariadb.ts +++ b/packages/server/src/utils/backups/mariadb.ts @@ -19,7 +19,8 @@ export const runMariadbBackup = async ( const project = await findProjectById(environment.projectId); const { prefix } = backup; const destination = backup.destination; - const backupFileName = `${new Date().toISOString()}.sql.gz`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${timestamp}.sql.gz`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; const deployment = await createDeploymentBackup({ backupId: backup.backupId, diff --git a/packages/server/src/utils/backups/mongo.ts b/packages/server/src/utils/backups/mongo.ts index 429de7d4d..1cec601da 100644 --- a/packages/server/src/utils/backups/mongo.ts +++ b/packages/server/src/utils/backups/mongo.ts @@ -16,7 +16,8 @@ export const runMongoBackup = async (mongo: Mongo, backup: BackupSchedule) => { const project = await findProjectById(environment.projectId); const { prefix } = backup; const destination = backup.destination; - const backupFileName = `${new Date().toISOString()}.sql.gz`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${timestamp}.sql.gz`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; const deployment = await createDeploymentBackup({ backupId: backup.backupId, diff --git a/packages/server/src/utils/backups/mysql.ts b/packages/server/src/utils/backups/mysql.ts index 90919f24c..37acaa43a 100644 --- a/packages/server/src/utils/backups/mysql.ts +++ b/packages/server/src/utils/backups/mysql.ts @@ -16,7 +16,8 @@ export const runMySqlBackup = async (mysql: MySql, backup: BackupSchedule) => { const project = await findProjectById(environment.projectId); const { prefix } = backup; const destination = backup.destination; - const backupFileName = `${new Date().toISOString()}.sql.gz`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${timestamp}.sql.gz`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; const deployment = await createDeploymentBackup({ backupId: backup.backupId, diff --git a/packages/server/src/utils/backups/postgres.ts b/packages/server/src/utils/backups/postgres.ts index 9aa5d8f5f..0fcf03d7a 100644 --- a/packages/server/src/utils/backups/postgres.ts +++ b/packages/server/src/utils/backups/postgres.ts @@ -25,7 +25,8 @@ export const runPostgresBackup = async ( }); const { prefix } = backup; const destination = backup.destination; - const backupFileName = `${new Date().toISOString()}.sql.gz`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${timestamp}.sql.gz`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; try { const rcloneFlags = getS3Credentials(destination); diff --git a/packages/server/src/utils/volume-backups/backup.ts b/packages/server/src/utils/volume-backups/backup.ts index cc613ffa9..00270c444 100644 --- a/packages/server/src/utils/volume-backups/backup.ts +++ b/packages/server/src/utils/volume-backups/backup.ts @@ -12,7 +12,8 @@ export const backupVolume = async ( volumeBackup.application?.serverId || volumeBackup.compose?.serverId; const { VOLUME_BACKUPS_PATH } = paths(!!serverId); const destination = volumeBackup.destination; - const backupFileName = `${volumeName}-${new Date().toISOString()}.tar`; + const timestamp = new Date().toISOString().replace('T', '_').replace(/:/g, '-').replace('.', '_'); + const backupFileName = `${volumeName}-${timestamp}.tar`; const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; const rcloneFlags = getS3Credentials(volumeBackup.destination); const rcloneDestination = `:s3:${destination.bucket}/${bucketDestination}`;