Есть метод, который восстанавливает бд с бекапа. Выглядит примерно так:
private function restoreSnapShot()
{
$snapshot = $this->option('snapshot');
if (!$snapshot) {
$this->error("Snapshot option is required.");
}
try {
$storage = Storage::disk('local');
$found = $storage->get('/backups/' . $snapshot . '.sql');
$tempLocation = '/tmp/' . config('database.connections.mysql.database') . '_' . date("Y-m-d_Hi") . '.sql';
// create a temp file
$bytes_written = File::put($tempLocation, $found);
if ($bytes_written === false) {
$this->info("Error writing to file: " . $tempLocation);
}
// run the cli job
$this->process = new Process([
'mysql',
'--host=' . config('database.connections.mysql.host'),
'--user=' . config('database.connections.mysql.username'),
'--password=' . config('database.connections.mysql.password'),
config('database.connections.mysql.database'),
$tempLocation
]);
$this->process->mustRun();
if ($this->process->isSuccessful()) {
$this->info("Restored snapshot: " . $snapshot);
}
} catch (\Exception $e) {
$this->info('File Not Found: ' . $e->getMessage());
}
}
Вся беда как я понял в запросе. Вылетает в ексепшн. Пробовал указывать явно
$this->process = new Process([" mysql -u user -pPassword < mydatabase.sql"])
, тоже не работает.
Что здесь может быть не так, как исправить?