public function backupToDatabase(Connection $source, $databaseName, $dropAndCreate = false) { $newDSN = clone $source->getDSN(); if ($newDSN->getAttribute('dbname') == $databaseName) { throw new LogicException('Backup to the same database.'); } if ($dropAndCreate) { $source->query('DROP DATABASE IF EXISTS ' . $databaseName); $source->query('CREATE DATABASE IF NOT EXISTS ' . $databaseName . ' CHARSET utf8'); } // Create new dest database connection $newConfig = $source->getConfig(); $newDSN->setAttribute('dbname', $databaseName); $newConfig['dsn'] = $newDSN->__toString(); $dest = Connection::create($newConfig); return $this->backup($source, $dest); }