Implement mysqldump/backup service/command

This commit is contained in:
Tim
2021-12-16 00:58:17 +01:00
parent 0ff9021d6e
commit 11089d82bc
9 changed files with 122 additions and 29 deletions

View File

@ -0,0 +1,30 @@
<?php
namespace App\Service;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Process\Process;
class BackupService
{
public function __construct(private DatabaseCredentials $credentials)
{
}
public function backup(string $db): string
{
$filesystem = new Filesystem();
$process = new Process([
'mysqldump',
'-B', $db,
'-u', $this->credentials->getUser(),
]);
$process->setEnv(['MYSQL_PWD' => $this->credentials->getPassword()]);
$process->run();
$fileName = sprintf('%s_backup.sql', $db);
$filesystem->dumpFile($fileName, $process->getOutput());
return $fileName;
}
}

View File

@ -4,7 +4,7 @@ namespace App\Service;
use mysqli;
class DatabaseManager
class DatabaseService
{
private mysqli $conn;