private function initConnection($dbname)
 {
     $cfg = Config::getSingleton()->get($this->configKey);
     if (!$cfg) {
         throw new \Exception("No configuration found for '{$this->configKey}'");
     }
     $cfg = $cfg[$dbname];
     if (!$cfg) {
         throw new \Exception("No configuration found for connection '{$dbname}'");
     }
     switch ($cfg['driver']) {
         case 'pgsql':
         case 'mysql':
             if (!isset($cfg['additional_dsn'])) {
                 $cfg['additional_dsn'] = '';
             }
             $connstr = "{$cfg['driver']}:host={$cfg['host']} dbname={$cfg['database']} {$cfg['additional_dsn']}";
             if (isset($cfg['port'])) {
                 $connstr .= ' port=' . $cfg['port'];
             }
             break;
         case 'sqlite':
             $connstr = "sqlite:{$cfg['filename']}";
             break;
         default:
             throw new \Exception("Unsupported driver '{$cfg['driver']} given for connection '{$dbname}'.");
     }
     if (!isset($cfg['user'])) {
         $cfg['user'] = '';
     }
     if (!isset($cfg['password'])) {
         $cfg['password'] = '';
     }
     if (class_exists("Aura\\Sql\\ExtendedPdo")) {
         $conn = new ExtendedPdo($connstr, $cfg['user'], $cfg['password']);
         if (isset($cfg['profiling']) && $cfg['profiling'] == true) {
             $conn->setProfiler(new Profiler());
             $conn->getProfiler()->setActive(true);
         }
     } else {
         $conn = new PDO($connstr, $cfg['user'], $cfg['password']);
     }
     if ($conn) {
         $conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
     }
     $this->connections[$dbname] = $conn;
 }