From 36089fd68f9f7bb558aa3057f713d8a67eff05f9 Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Tue, 2 Mar 2021 11:25:45 -0600 Subject: [PATCH] Write backup before deleting lowdb database (#291) * Write backup before deleting lowdb database * Const for unchanged variables --- src/services/lowdbStorage.service.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/services/lowdbStorage.service.ts b/src/services/lowdbStorage.service.ts index b41289f902b..616451f0d23 100644 --- a/src/services/lowdbStorage.service.ts +++ b/src/services/lowdbStorage.service.ts @@ -47,6 +47,13 @@ export class LowdbStorageService implements StorageService { } catch (e) { if (e instanceof SyntaxError) { this.logService.warning(`Error creating lowdb storage adapter, "${e.message}"; emptying data file.`); + if (fs.existsSync(this.dataFilePath)) { + const backupPath = this.dataFilePath + '.bak'; + this.logService.warning(`Writing backup of data file to ${backupPath}`); + await fs.copyFile(this.dataFilePath, backupPath, err => { + this.logService.warning(`Error while creating data file backup, "${e.message}". No backup may have been created.`); + }); + } adapter.write({}); this.db = lowdb(adapter); } else {