diff --git a/api/src/database/index.ts b/api/src/database/index.ts index 4a73ba7855..84cf51c17c 100644 --- a/api/src/database/index.ts +++ b/api/src/database/index.ts @@ -19,7 +19,23 @@ const connectionConfig: Record = getConfigFromEnv('DB_', [ const poolConfig = getConfigFromEnv('DB_POOL'); -validateEnv(['DB_CLIENT']); +const requiredKeys = ['DB_CLIENT']; + +if (env.DB_CLIENT && env.DB_CLIENT === 'sqlite3') { + requiredKeys.push('DB_FILENAME'); +} else if (env.DB_CLIENT && env.DB_CLIENT === 'oracledb') { + requiredKeys.push('DB_USER', 'DB_PASSWORD', 'DB_CONNECT_STRING'); +} else { + if (env.DB_CLIENT === 'pg') { + if (!env.DB_CONNECTION_STRING) { + requiredKeys.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER'); + } + } else { + requiredKeys.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD'); + } +} + +validateEnv(requiredKeys); const knexConfig: Knex.Config = { client: env.DB_CLIENT, diff --git a/api/src/utils/validate-env.ts b/api/src/utils/validate-env.ts index 39d7b050f7..f07eab8219 100644 --- a/api/src/utils/validate-env.ts +++ b/api/src/utils/validate-env.ts @@ -2,20 +2,6 @@ import env from '../env'; import logger from '../logger'; export function validateEnv(requiredKeys: string[]): void { - if (env.DB_CLIENT && env.DB_CLIENT === 'sqlite3') { - requiredKeys.push('DB_FILENAME'); - } else if (env.DB_CLIENT && env.DB_CLIENT === 'oracledb') { - requiredKeys.push('DB_USER', 'DB_PASSWORD', 'DB_CONNECT_STRING'); - } else { - if (env.DB_CLIENT === 'pg') { - if (!env.DB_CONNECTION_STRING) { - requiredKeys.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER'); - } - } else { - requiredKeys.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD'); - } - } - for (const requiredKey of requiredKeys) { if (requiredKey in env === false) { logger.error(`"${requiredKey}" Environment Variable is missing.`);