$zipTempFile = tempnam(sys_get_temp_dir(), 'bsbackup');
$dumpTempFile = '';
$zip = new ZipArchive();
- $zip->open($zipTempFile, ZipArchive::CREATE);
+ $zip->open($zipTempFile, ZipArchive::OVERWRITE);
// Add default files (.env config file and this CLI if existing)
$zip->addFile(Paths::join($appDir, '.env'), '.env');
if ($handleDatabase) {
$output->writeln("<info>Dumping the database via mysqldump...</info>");
- $dumpTempFile = $this->createDatabaseDump($appDir);
+ $dumpTempFile = $this->createDatabaseDump($appDir, $output);
$output->writeln("<info>Adding database dump to backup archive...</info>");
$zip->addFile($dumpTempFile, 'db.sql');
}
rename($zipTempFile, $zipOutFile);
// Announce end
- $output->writeln("<info>Backup finished.</info>");
+ $output->writeln("<success>Backup finished.</success>");
$output->writeln("Output ZIP saved to: {$zipOutFile}");
return Command::SUCCESS;
* Create a database dump and return the path to the dumped SQL output.
* @throws CommandError
*/
- protected function createDatabaseDump(string $appDir): string
+ protected function createDatabaseDump(string $appDir, OutputInterface $output): string
{
$envOptions = EnvironmentLoader::loadMergedWithCurrentEnv($appDir);
$mysql = MySqlRunner::fromEnvOptions($envOptions);
$dumpTempFile = tempnam(sys_get_temp_dir(), 'bsdbdump');
try {
- $mysql->runDumpToFile($dumpTempFile);
+ $warnings = $mysql->runDumpToFile($dumpTempFile);
+ if ($warnings) {
+ $output->writeln("<warn>Received warnings during mysqldump:\n{$warnings}</warn>");
+ }
} catch (\Exception $exception) {
unlink($dumpTempFile);
throw new CommandError($exception->getMessage());