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>