Class: DataBackupService
Defined in: electron/services/database/DataBackupService.ts:69
Provides high-level database backup and restore operations with diagnostics.
Constructors
Constructor
new DataBackupService(
config:DataBackupServiceConfig):DataBackupService
Defined in: electron/services/database/DataBackupService.ts:574
Parameters
config
Returns
DataBackupService
Properties
databaseService
privatereadonlydatabaseService:DatabaseService
Defined in: electron/services/database/DataBackupService.ts:70
eventEmitter
privatereadonlyeventEmitter:TypedEventBus<UptimeEvents>
Defined in: electron/services/database/DataBackupService.ts:72
logger
privatereadonlylogger:BaseLogger
Defined in: electron/services/database/DataBackupService.ts:74
databaseFileOperationInProgress
privatedatabaseFileOperationInProgress:string|null=null
Defined in: electron/services/database/DataBackupService.ts:76
downloadDatabaseBackupSingleFlight()
privatereadonlydownloadDatabaseBackupSingleFlight: () =>Promise<DatabaseBackupResult>
Defined in: electron/services/database/DataBackupService.ts:78
Returns
Methods
withExclusiveDatabaseFileOperation()
privatewithExclusiveDatabaseFileOperation<T>(operationName:string,operation: () =>Promise<T>):Promise<T>
Defined in: electron/services/database/DataBackupService.ts:91
Executes an operation that temporarily closes/reinitializes the primary SQLite connection or replaces the database file.
Type Parameters
T
T
Parameters
operationName
string
operation
() => Promise<T>
Returns
Promise<T>
Remarks
These operations must not overlap. Concurrent execution can lead to:
- Closing the shared connection while another operation is using it,
- Partially replaced files being opened,
- Windows rename/locking issues.
downloadDatabaseBackup()
downloadDatabaseBackup():
Promise<DatabaseBackupResult>
Defined in: electron/services/database/DataBackupService.ts:109
Returns
saveDatabaseBackupToPath()
saveDatabaseBackupToPath(
targetPath:string):Promise<DatabaseBackupMetadata>
Defined in: electron/services/database/DataBackupService.ts:126
Saves a SQLite database backup directly to disk.
Parameters
targetPath
string
Returns
Promise<DatabaseBackupMetadata>
Remarks
This avoids materializing the backup as a large in-memory Buffer. Internally it:
- Creates a consistent snapshot via
VACUUM INTOin a temp directory, - Copies the snapshot into the destination directory under a temp name,
- Swaps the destination file atomically (rename with a backup fallback).
computeFileChecksum()
privatecomputeFileChecksum(filePath:string):Promise<string>
Defined in: electron/services/database/DataBackupService.ts:207
Parameters
filePath
string
Returns
Promise<string>
replaceFileAtomicallyWithBackup()
privatereplaceFileAtomicallyWithBackup(args: {sourcePath:string;targetPath:string; }):Promise<void>
Defined in: electron/services/database/DataBackupService.ts:235
Parameters
args
sourcePath
string
targetPath
string
Returns
Promise<void>
downloadDatabaseBackupImpl()
privatedownloadDatabaseBackupImpl():Promise<DatabaseBackupResult>
Defined in: electron/services/database/DataBackupService.ts:266
eslint-enable security/detect-non-literal-fs-filename -- Re-enable after user-path backup save helpers.
Returns
restoreDatabaseBackup()
restoreDatabaseBackup(
payload:DatabaseRestorePayload):Promise<DatabaseRestoreResult>
Defined in: electron/services/database/DataBackupService.ts:338
Parameters
payload
Returns
Promise<DatabaseRestoreResult>
applyDatabaseBackupResult()
applyDatabaseBackupResult(
backup:DatabaseBackupResult):Promise<DatabaseBackupMetadata>
Defined in: electron/services/database/DataBackupService.ts:499