2017-01-18 13 views
0

私はspatie/laravel-backupをWAMPローカルホストで使用しています。spatie/laravel-backup Artisanクラスを実行すると "mysqldump"が認識されません

私はcmdをウィンドウに手動で入力したときにそれが正常に動作します:

php artisan backup:run 

しかし、私は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', 
      ], 
     ], 

どうすれば修正できますか?


EDIT

は、おそらくそれは、(感謝Loekの答えを出しfinded)は、Windows用の「バグ」をサポートするだけだas the author saysので、私は安全にコマンドなしコントローラでバックアップを実行できますか?

use Spatie\Backup\Tasks\Backup\BackupJobFactory; 

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

commandと同じようにしてください。

答えて

1

私はそれがスラッシュであると信じています。これを試してみてください:

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

Windows用EDIT

サポートは、GitHubの問題に関するクリエイターからのコメント「このパッケージには、Windowsをサポートしていません」複数で、最高の状態でグラグラです。これは最新です:https://github.com/spatie/laravel-backup/issues/311

また、許可の問題かもしれません。コマンドラインからの実行は、おそらくWebサーバーからの実行ではなく、別のユーザーが行っているため、Windowsはmysqldumpへのアクセスを拒否しています。

第二編集

限り、あなたはこれが働かない理由だけで、それはする必要があるときに呼び出されるコントローラは、私は見ていないことを確認して!

+0

私はすでに 'E:/wamp/wamp64/bin/mysql/mysql5.7.9/bin'と 'E:\ wamp \ wamp64 \ bin \ mysql \ mysql5.7.9 \ bin'を試してみました。 ' – paolobasso

+0

二重バックスラッシュでも?そして、それがタイプミスかどうかは分かりませんが、2番目のパスにスラッシュがあります。 – Loek

+0

すでに両方の感覚でダブルで試してみました。 – paolobasso

関連する問題