Мне нужно иметь резервную копию базы данных каждый час в моем недавнем проекте. Так что я использовал spatie / Laravel резервного копирования где есть документация процесс планирования также. Это означает, что я могу хранить резервную копию базы данных каждый час. Я следовал за документом и сделал тот же самый процесс для планирования. Но база данных не хранит резервную копию.
Я установил его успешно, так как всякий раз, когда я запускаю следующую команду, он создает резервную копию базы данных.
php artisan backup:run
Но для планирования я добавил следующую строку в функцию schedule в kernel.php, как указано в doc:
$schedule->command('backup:run')
->hourly();
Но ничего не произошло. Если у кого-то есть пакет с расписанием, пожалуйста, помогите мне найти ошибку. Спасибо!
Laravel в основном построен на Unix. В этом отношении документации Laravel более чем достаточно.
Для Windows вот что вы должны сделать:
Добавьте путь к исполняемым файлам PHP в глобальную переменную PATH в Windows.
Откройте панель управления и найдите планировщик (не запомните имя правильно, но оно несколько похоже).
Теперь вам просто нужно запланировать команду здесь. Это очень простой процесс.
Успешно протестировано на Windows 7 Professional (64-разрядная версия), среда: Laragon 2.1.6, Laravel 5.3. *, PHP php-7.0.10-Win32-VC14-x86, MySQL mariadb-10.1.9:
'connections' => [
'mysql' => ['dump_command_path' => 'C:\laragon\bin\mysql\mariadb-10.1.9-win32\bin',
'dump_command_timeout' => 60 * 5, // 5 minute timeout
'dump_using_single_transaction' => true,
'driver' => 'mysql',
...
],
Щелкните правой кнопкой мыши на Мой компьютер -> Свойства -> Расширенные настройки системы -> Дополнительно -> Переменные среды … -> Системные переменные
За Имя переменной: Дорожка добавить это в конце для Значение переменной (необходимо для php.exe и mysqldump.exe):
C:\laragon\bin\php\php-7.0.10-Win32-VC14-x86\;C:\laragon\bin\mysql\mariadb-10.1.19-win32\bin\;
php artisan backup:run
В Панели управления -> Администрирование -> Планировщик заданий создайте базовое задание, указывающее на ваш файл bat (ch), и запланируйте его на нужный час.
В Создать задачу Путин Начать в (необязательно) путь к вашему проекту Laravel (например: C:\laragon\www\laravel_project_name\
)
Вам нужно дать 777 доступ к папке хранилища. У меня была такая же проблема раньше, поэтому я назначил emailOutputTo расписанию, а затем я получил письмо с исключением, например:
В строке TemporaryDirectory.php 42:
mkdir (): в доступе отказано
Поэтому сделайте на вашем сервере chmod -R 777 хранилище /
Тогда посмотрите, работает ли это!