protected function dumpDb($filename)
 {
     $this->log('Dumping databases');
     $user = Config::get($this->local, 'user');
     $pass = Config::get($this->local, 'pass');
     $dumper = new MySQLDump('localhost', $user, $pass);
     $dbs = $dumper->listDbs();
     // $this->log('Databases: %s', implode(', ', $dbs));
     $zip = new ZipArchive();
     $zip->open($filename, ZIPARCHIVE::CREATE);
     foreach ($dbs as $db) {
         if (empty($db)) {
             continue;
         }
         $this->log('Dump db %s', $db);
         $dump = $dumper->dumpDatabase($db);
         $ext = '.sql';
         if (function_exists('gzencode')) {
             $dump = gzencode($dump, 9);
             $ext .= '.gz';
         }
         $zip->addFromString($db . $ext, $dump);
     }
     $this->log('Dump Finished');
     $this->log('Zipped Files: %s', $zip->numFiles);
     $zip->close();
 }