spatie / laravel-backup & quot; mysqldump & quot; не распознается, когда я прохожу его через класс Artisan

я использую spatie / Laravel резервного копирования в локальном хосте WAMP.

Это работает нормально, когда я печатаю вручную в Windows CMD:

php artisan backup:run

Но когда я пытаюсь запустить резервное копирование с помощью класса Artisan laravel:

Artisan::call('backup:run');

Выдает ошибку:

'mysqldump' not recognized ...

В конфиге laravel mysql я также указал путь к дамперу:

'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:/wamp/wamp64/bin/mysql/mysql5.7.9/bin',
],
],

Как я могу это исправить?


РЕДАКТИРОВАТЬ

Вероятно, это просто поддержка «ошибки» для окон (в конце концов, спасибо ответу Лука), как говорит автор, так что я могу запустить резервное копирование в контроллере без команды безопасно? может быть с чем-то вроде:

use Spatie\Backup\Tasks\Backup\BackupJobFactory;

BackupJobFactory::createFromArray(config('laravel-backup'))->run();

Как команда сам.

0

Решение

Я считаю, что это слэш. Попробуй это:

'mysql' => [
'driver' => 'mysql',
// ...
'dump' => [
'dump_binary_path' => 'E:\\wamp\\wamp64\\bin\\mysql\\mysql5.7.9\\bin',
],
],

РЕДАКТИРОВАТЬ

Поддержка Windows в лучшем случае выигрышна, с многочисленными комментариями «Этот пакет не поддерживает Windows» от создателей по проблемам GitHub. Это последнее: https://github.com/spatie/laravel-backup/issues/311

Это также может быть проблема с разрешением. Выполнение из командной строки, вероятно, происходит от другого пользователя, а не от веб-сервера, поэтому Windows запрещает доступ к mysqldump.

2-е редактирование

Пока вы убедитесь, что контроллер вызывается только тогда, когда это необходимо, я не понимаю, почему это не сработает!

1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector