Implement mysqldump/backup service/command
This commit is contained in:
30
src/Service/BackupService.php
Normal file
30
src/Service/BackupService.php
Normal 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;
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ namespace App\Service;
|
||||
|
||||
use mysqli;
|
||||
|
||||
class DatabaseManager
|
||||
class DatabaseService
|
||||
{
|
||||
private mysqli $conn;
|
||||
|
Reference in New Issue
Block a user