Fix env var validation in database loading step (#6002)

Fixes #5980
This commit is contained in:
Rijk van Zanten
2021-06-02 11:17:50 -04:00
committed by GitHub
parent a1ff311a66
commit 02fc696c53
2 changed files with 17 additions and 15 deletions

View File

@@ -19,7 +19,23 @@ const connectionConfig: Record<string, any> = 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,

View File

@@ -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.`);