cms-niceties/src/Tasks/DumpMySQL.php

38 lines
942 B
PHP
Raw Permalink Normal View History

2022-02-09 21:41:35 +01:00
<?php
namespace A2nt\CMSNiceties\Tasks;
use SilverStripe\Assets\File;
use SilverStripe\Dev\BuildTask;
use SilverStripe\ORM\DB;
class DumpMySQL extends BuildTask
{
protected $title = 'Dump MySQL Task';
protected $description = 'Create MySQL dump';
protected $enabled = true;
public function run($request)
{
2022-02-09 22:09:19 +01:00
$fileName = 'backup-'.date('d-m-Y').'.sql';
2022-02-09 21:41:35 +01:00
$cfg = DB::getConfig();
2022-02-09 22:02:31 +01:00
try {
2022-02-09 21:48:10 +01:00
ob_clean();
} catch (Exception $e) {
2022-02-09 22:02:31 +01:00
}
2022-02-09 21:41:35 +01:00
2022-02-09 22:09:19 +01:00
// check if gzip is on
try {
if (count(array_intersect(['mod_deflate', 'mod_gzip'], apache_get_modules())) > 0) {
$fileName .= '.gz';
}
} catch (Exception $e) {
}
header('Content-Disposition: attachment; filename="'.$fileName.'"');
2022-02-09 22:02:31 +01:00
passthru('mysqldump -u '.$cfg['username'].' --password="'.$cfg['password'].'" '.$cfg['database']);
2022-02-09 21:41:35 +01:00
exit(0);
}
}