Нам нужно создавать резервные копии базы данных раз в минуту. Давайте начнем.
php artisan make:comman BackupDatabase
Откройте только что созданный файл и измените его следующим образом:
process = new Process(sprintf('mysqldump -u%s --password=%s %s > %s',
config('database.connections.mysql.username'),
config('database.connections.mysql.password'),
config('database.connections.mysql.database'),
storage_path('backups/' . $file_name)
));
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
try {
$this->process->mustRun();
$this->info('The backup has been proceed successfully.');
} catch (ProcessFailedException $exception) {
$this->error($exception);
}
}
}Создайте папку резервных копий в хранилище и откройте app/Console/Kernel.php Измените метод схемы следующим образом
protected function schedule(Schedule $schedule)
{
$schedule->command('db:backup')
->everyMinute();
}Введите сервер для выполнения
crontab -e
Если вы откроете crontab в первый раз, он позволит вам выбрать редактор. Здесь (vim) достаточно, третий я выбираю. Но если вы выберете неправильный, у вас могут возникнуть некоторые проблемы, и вы не сможете отредактировать его должным образом, кронтаб-е. Что мне делать? Выполните эту команду: выберите-редактор (команда из crontab), которая позволяет вам повторно выбрать его. Скопируйте следующее
* * * * * php /home/vagrant/code/laravel/artisan schedule:run >> /dev/null 2>&1
/home/бродяга/код/laravel/- это каталог проекта. Минуту спустя вы можете проверить, есть ли файлы SQL, которые создают резервные копии в папке хранилища/резервные копии.