spatie / laravel-backup: планирование не работает

Мне нужно иметь резервную копию базы данных каждый час в моем недавнем проекте. Так что я использовал spatie / Laravel резервного копирования где есть документация процесс планирования также. Это означает, что я могу хранить резервную копию базы данных каждый час. Я следовал за документом и сделал тот же самый процесс для планирования. Но база данных не хранит резервную копию.

Я установил его успешно, так как всякий раз, когда я запускаю следующую команду, он создает резервную копию базы данных.

php artisan backup:run

Но для планирования я добавил следующую строку в функцию schedule в kernel.php, как указано в doc:

 $schedule->command('backup:run')
->hourly();

Но ничего не произошло. Если у кого-то есть пакет с расписанием, пожалуйста, помогите мне найти ошибку. Спасибо!

3

Решение

Laravel в основном построен на Unix. В этом отношении документации Laravel более чем достаточно.

Для Windows вот что вы должны сделать:

  • Добавьте путь к исполняемым файлам PHP в глобальную переменную PATH в Windows.

  • Откройте панель управления и найдите планировщик (не запомните имя правильно, но оно несколько похоже).

  • Теперь вам просто нужно запланировать команду здесь. Это очень простой процесс.

0

Другие решения

Успешно протестировано на Windows 7 Professional (64-разрядная версия), среда: Laragon 2.1.6, Laravel 5.3. *, PHP php-7.0.10-Win32-VC14-x86, MySQL mariadb-10.1.9:

  1. Отредактируйте свой конфиг / database.php как в документации от spatie:

'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',
...
],

  1. Щелкните правой кнопкой мыши на Мой компьютер -> Свойства -> Расширенные настройки системы -> Дополнительно -> Переменные среды … -> Системные переменные

  2. За Имя переменной: Дорожка добавить это в конце для Значение переменной (необходимо для 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\;

  1. В корне вашего проекта Laravel создайте файл bat (ch) с такой строкой:

php artisan backup:run

  1. В Панели управления -> Администрирование -> Планировщик заданий создайте базовое задание, указывающее на ваш файл bat (ch), и запланируйте его на нужный час.

  2. В Создать задачу Путин Начать в (необязательно) путь к вашему проекту Laravel (например: C:\laragon\www\laravel_project_name\)

0

Вам нужно дать 777 доступ к папке хранилища. У меня была такая же проблема раньше, поэтому я назначил emailOutputTo расписанию, а затем я получил письмо с исключением, например:

В строке TemporaryDirectory.php 42:

mkdir (): в доступе отказано

Поэтому сделайте на вашем сервере chmod -R 777 хранилище /

Тогда посмотрите, работает ли это!

0