From aa2f8451a6d7ecc4bd0a3eefd65c58f7911c95bb Mon Sep 17 00:00:00 2001 From: "Patrik J. Braun" Date: Sat, 5 Sep 2020 19:09:25 +0200 Subject: [PATCH] adding config to disable memory db fallback. #163 --- src/backend/model/diagnostics/ConfigDiagnostics.ts | 11 ++++++++--- src/common/config/private/PrivateConfig.ts | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/backend/model/diagnostics/ConfigDiagnostics.ts b/src/backend/model/diagnostics/ConfigDiagnostics.ts index a03867f4..3715335e 100644 --- a/src/backend/model/diagnostics/ConfigDiagnostics.ts +++ b/src/backend/model/diagnostics/ConfigDiagnostics.ts @@ -230,9 +230,14 @@ export class ConfigDiagnostics { } catch (ex) { const err: Error = ex; Logger.warn(LOG_TAG, '[SQL error]', err.toString()); - Logger.warn(LOG_TAG, 'Error during initializing SQL falling back temporally to memory DB'); - NotificationManager.warning('Error during initializing SQL falling back temporally to memory DB', err.toString()); - Config.Server.Database.type = ServerConfig.DatabaseType.memory; + if (Config.Server.Database.enableFallback === true) { + Logger.warn(LOG_TAG, 'Error during initializing SQL falling back temporally to memory DB'); + NotificationManager.warning('Error during initializing SQL falling back temporally to memory DB', err.toString()); + Config.Server.Database.type = ServerConfig.DatabaseType.memory; + } else { + Logger.error(LOG_TAG, 'Error during initializing SQL DB, check DB connection and settings'); + process.exit(1); + } } } diff --git a/src/common/config/private/PrivateConfig.ts b/src/common/config/private/PrivateConfig.ts index 61fa91c0..acb17d11 100644 --- a/src/common/config/private/PrivateConfig.ts +++ b/src/common/config/private/PrivateConfig.ts @@ -67,6 +67,9 @@ export module ServerConfig { }) type: DatabaseType = DatabaseType.sqlite; + @ConfigProperty({description: 'In the case of bad database settings (or unreachable database), the app falls back using inmemory database, otherwise terminates the app.'}) + enableFallback: boolean = true; + @ConfigProperty() dbFolder: string = 'db';