sanitizeDatabaseProperties = function sanitizeDatabaseProperties(nconf) {
    if (nconf.get('database:client') === 'mysql') {
        nconf.set('database:client', 'mysql2');
    }

    const database = nconf.get('database');

    if (nconf.get('database:client') === 'mysql2') {
        delete database.connection.filename;
    } else {
        delete database.connection.host;
        delete database.connection.user;
        delete database.connection.password;
        delete database.connection.database;
    }

    nconf.set('database', database);

    if (nconf.get('database:client') === 'sqlite3') {
        makePathsAbsolute(nconf, nconf.get('database:connection'), 'database:connection');
    }
}
nconf merges all database keys together and this can be confusing
e.g. production default database is sqlite, but you override the configuration with mysql

this.clear('key') does not work
https://github.com/indexzero/nconf/issues/235#issuecomment-257606507