Принятие резервного копирования sql DB через Custom artisan cammand laravel - PullRequest
2 голосов
/ 11 ноября 2019

Я беру резервную копию MySQL БД с пользовательским сгенерированным artisan command, команда выполняется успешно и также создала файл backup без ошибок exception, но файл пуст.

class BackupDatabase extends Command
{
    protected $signature = 'db:backup';
    protected $description = 'Backup the database';
    protected $process;

    public function __construct()
    {
        parent::__construct();

        $today = \today()->format('Y-m-d');
        if (!\is_dir(\storage_path('backups'))) {
            \mkdir(\storage_path('backups'));
        }

        $this->process = new Process(sprintf(
            'mysqldump -u%s -p%s %s > %s',
            config('database.connections.mysql.username'),
            config('database.connections.mysql.password'),
            config('database.connections.mysql.database'),
            storage_path("backups/{$today}.sql")
        ));
    }

    public function handle()
    {
        try {
            $this->process->run();

            $this->info('The backup has been proceed successfully.');
        } catch (ProcessFailedException $exception) {
            $this->error('The backup process has been failed.', $exception);
        }
    }
}

...