Skip to main content

Class: DataBackupService

Defined in: electron/services/database/DataBackupService.ts:89

Provides high-level database backup and restore operations with diagnostics.

Constructors​

Constructor​

new DataBackupService(config: DataBackupServiceConfig): DataBackupService;

Defined in: electron/services/database/DataBackupService.ts:653

Parameters​

config​

DataBackupServiceConfig

Returns​

DataBackupService

Properties​

databaseService​

private readonly databaseService: DatabaseService;

Defined in: electron/services/database/DataBackupService.ts:90


eventEmitter​

private readonly eventEmitter: TypedEventBus<UptimeEvents>;

Defined in: electron/services/database/DataBackupService.ts:92


logger​

private readonly logger: BaseLogger;

Defined in: electron/services/database/DataBackupService.ts:94


downloadDatabaseBackupSingleFlight​

private readonly downloadDatabaseBackupSingleFlight: () => Promise<DatabaseBackupResult>;

Defined in: electron/services/database/DataBackupService.ts:96

Returns​

Promise<DatabaseBackupResult>

Methods​

withExclusiveDatabaseFileOperation()​

private withExclusiveDatabaseFileOperation<T>(operationName: string, operation: () => Promise<T>): Promise<T>;

Defined in: electron/services/database/DataBackupService.ts:109

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:119

Returns​

Promise<DatabaseBackupResult>


saveDatabaseBackupToPath()​

saveDatabaseBackupToPath(targetPath: string): Promise<DatabaseBackupMetadata>;

Defined in: electron/services/database/DataBackupService.ts:134

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:

  1. Creates a consistent snapshot via VACUUM INTO in a temp directory,
  2. Copies the snapshot into the destination directory under a temp name,
  3. Swaps the destination file atomically (rename with a backup fallback).

computeFileChecksum()​

private computeFileChecksum(filePath: string): Promise<string>;

Defined in: electron/services/database/DataBackupService.ts:241

Parameters​

filePath​

string

Returns​

Promise<string>


replaceFileAtomicallyWithBackup()​

private replaceFileAtomicallyWithBackup(args: {
sourcePath: string;
targetPath: string;
}): Promise<void>;

Defined in: electron/services/database/DataBackupService.ts:270

Parameters​

args​
sourcePath​

string

targetPath​

string

Returns​

Promise<void>


downloadDatabaseBackupImpl()​

private downloadDatabaseBackupImpl(): Promise<DatabaseBackupResult>;

Defined in: electron/services/database/DataBackupService.ts:364

Returns​

Promise<DatabaseBackupResult>


restoreDatabaseBackup()​

restoreDatabaseBackup(payload: DatabaseRestorePayload): Promise<DatabaseRestoreResult>;

Defined in: electron/services/database/DataBackupService.ts:436

Parameters​

payload​

DatabaseRestorePayload

Returns​

Promise<DatabaseRestoreResult>


applyDatabaseBackupResult()​

applyDatabaseBackupResult(backup: DatabaseBackupResult): Promise<DatabaseBackupMetadata>;

Defined in: electron/services/database/DataBackupService.ts:582

Parameters​

backup​

DatabaseBackupResult

Returns​

Promise<DatabaseBackupMetadata>