mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-17 17:01:37 +00:00
- refactoring architecture - fix incomplete ssh logs - code editor for scripts in the app - remove Jobs and SSHCommands
31 lines
841 B
PHP
31 lines
841 B
PHP
<?php
|
|
|
|
namespace App\Actions\Database;
|
|
|
|
use App\Enums\BackupFileStatus;
|
|
use App\Models\Backup;
|
|
use App\Models\BackupFile;
|
|
use Illuminate\Support\Str;
|
|
|
|
class RunBackup
|
|
{
|
|
public function run(Backup $backup): void
|
|
{
|
|
$file = new BackupFile([
|
|
'backup_id' => $backup->id,
|
|
'name' => Str::of($backup->database->name)->slug().'-'.now()->format('YmdHis'),
|
|
'status' => BackupFileStatus::CREATING,
|
|
]);
|
|
$file->save();
|
|
|
|
dispatch(function () use ($file) {
|
|
$file->backup->server->database()->handler()->runBackup($file);
|
|
$file->status = BackupFileStatus::CREATED;
|
|
$file->save();
|
|
})->catch(function () use ($file) {
|
|
$file->status = BackupFileStatus::FAILED;
|
|
$file->save();
|
|
})->onConnection('ssh');
|
|
}
|
|
}
|