Want a free way to backup your laravel app and database to dropbox? This guide should help!
Packages used
- spatie/laravel-backup – Backups your filesystem and database to any Laravel file system
- thephpleague/flysystem-dropbox – Adds dropbox as a laravel file system
Step 1
Follow the steps to install spatie/laravel-backup and thephpleague/flysystem-dropbox
Step 2
Create a file name DropboxFilesystemServiceProvider.php in app/Providers/. Then add App\Providers\DropboxFilesystemServiceProvider::class to your providers in config/app.php
Below is a copy of my DropboxFilesystemServiceProvider.php. Take a look at $config[‘accessToken’] and $config[‘appSecret’]. You’ll get these when you create a dropbox app. You can set these values in your .env file.
<?php namespace App\Providers; use Storage; use League\Flysystem\Filesystem; use Dropbox\Client as DropboxClient; use League\Flysystem\Dropbox\DropboxAdapter; use Illuminate\Support\ServiceProvider; class DropboxFilesystemServiceProvider extends ServiceProvider { public function boot() { Storage::extend('dropbox', function ($app, $config) { $client = new DropboxClient($config['accessToken'], $config['appSecret']); return new Filesystem(new DropboxAdapter($client)); }); } public function register() { // } }
Step 3
Create a Dropbox API App
Make sure you generate an access token. Save the access token and app secret in your .env file. Generating an access token will create a folder Apps in your Dropbox folder. This is where your backups will be saved.
Step 4
Edit config/laravel-backup.php and set ‘disks’ => [‘dropbox’] for destination and monitorBackups. If you do not have a laravel-backup.php file in your config folder, run php artisan vendor:publish –provider=”Spatie\Backup\BackupServiceProvider”
Step 5
Add a dropbox filesystem to config/filesystems.php
'dropbox' => [ 'driver' => 'dropbox', 'accessToken' => env('DROPBOX_ACCESS_TOKEN'), 'appSecret' => env('DROPBOX_APP_SECRET'), ]
Step 6
Edit kernel.php in app Console/. This will run your backup and cleanup old backups. You can define how many backups you save in config/laravel-backup.php.
// app/Console/Kernel.php protected function schedule(Schedule $schedule) { $schedule->command('backup:clean')->daily()->at('01:00'); $schedule->command('backup:run')->daily()->at('02:00'); }
Step 7
Setup scheduler to run your backup. You can do this from a cron job or if you’re using Forge, you can set it up there. More documentation here.
That’s It!
These same steps can be used to backup your app to several other cloud services. To use other FileSystems, check out Flysystem.
Hope these steps help you setup your own Laravel backup. Please leave a comment below if you have any issues.
Thanks for reading. Make sure you follow me on Twitter to stay up to date on the progress of my side projects T.LY, Weather Extension, and Link Shortener Extension. If you are interested in the tech I use daily, check out my uses page.
It doesn’t seem to work for me. My scheduler log on Forge only returns:
Start backing up
Database dumped
Start zipping 1 files…
Zip created!
Start uploading backup to dropbox-filesystem…
[BadMethodCallException]
Call to undefined method League\Flysystem\Filesystem::createDropboxDriver
Any ideas? I followed the instructions precisely.
Just figured it out. Forgot to add this too the ‘providers’ in config/app.php:
‘YourApp\Providers\DropboxFilesystemServiceProvider’
That’s good. So it’s working?
Yepp 🙂
Hi Tim
I followed all the steps, but got this when trying to update :
$ php artisan backup:run
PHP Warning: The use statement with non-compound name 'Auth' has no effect in /var/www/app/app/Http/helpers.php on line 4
Start backing up
Database dumped
Determining which files should be backed up...
Start zipping 375 files...
Zip created!
Start uploading backup to dropbox-filesystem...
[BadMethodCallException]
Call to undefined method League\Flysystem\Filesystem::createDriver
Backup to local filesystem works, using the dropbox filesystem also works.
This is in my composer.json :
...
"graham-campbell/flysystem": "*",
"spatie/laravel-backup": "^2.5",
"league/flysystem-dropbox": "^1.0"
and in config/app.php :
...
'Spatie\Backup\BackupServiceProvider',
'GrahamCampbell\Flysystem\FlysystemServiceProvider',
'App\Providers\DropboxFilesystemServiceProvider',
all other files were updated/created following your instructions.
Any ideas would be much appreciated !
Karel
Hey Karel,
What does your helpers.php file look like?
hi Tim, thanks for replying. My helpers.php contains some functions to help build forms. There was a useless “use Auth;” at line 4, which I removed, so the artisan’s warning is gone.
When I run php artiusan backup:run, this shows up in the log file :
[2015-08-25 10:15:49] local.ERROR: exception 'BadMethodCallException' with message 'Call to undefined method League\Flysystem\Filesystem::createDriver' in /var/www/app/vendor/league/flysystem/src/Plugin/PluggableTrait.php:85
Stack trace:
#0 [internal function]: League\Flysystem\Filesystem->__call('createDriver', Array)
#1 [internal function]: League\Flysystem\Filesystem->createDriver(NULL)
#2 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php(347): call_user_func_array(Array, Array)
#3 [internal function]: Illuminate\Filesystem\FilesystemAdapter->__call('createDriver', Array)
#4 [internal function]: Illuminate\Filesystem\FilesystemAdapter->createDriver(NULL)
#5 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(251): call_user_func_array(Array, Array)
#6 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(100): Illuminate\Filesystem\FilesystemManager->__call('createDriver', Array)
#7 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(100): Illuminate\Filesystem\FilesystemManager->createDriver(NULL)
#8 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(83): Illuminate\Filesystem\FilesystemManager->resolve('dropbox')
#9 /var/www/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php(72): Illuminate\Filesystem\FilesystemManager->get('dropbox')
#10 /var/www/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(210): Illuminate\Filesystem\FilesystemManager->disk('dropbox')
#11 /var/www/app/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(217): Illuminate\Support\Facades\Facade::__callStatic('disk', Array)
#12 /var/www/app/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(217): Illuminate\Support\Facades\Storage::disk('dropbox')
#13 /var/www/app/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(44): Spatie\Backup\Commands\BackupCommand->copyFileToFileSystem('/tmp/laravel-ba...', 'dropbox')
#14 [internal function]: Spatie\Backup\Commands\BackupCommand->fire()
#15 /var/www/app/vendor/laravel/framework/src/Illuminate/Container/Container.php(502): call_user_func_array(Array, Array)
#16 /var/www/app/vendor/laravel/framework/src/Illuminate/Console/Command.php(150): Illuminate\Container\Container->call(Array)
#17 /var/www/app/vendor/symfony/console/Command/Command.php(259): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 /var/www/app/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 /var/www/app/vendor/symfony/console/Application.php(878): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /var/www/app/vendor/symfony/console/Application.php(195): Symfony\Component\Console\Application->doRunCommand(Object(Spatie\Backup\Commands\BackupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /var/www/app/vendor/symfony/console/Application.php(126): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(100): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/app/artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 {main}
I started looking at the code mentioned in the log, but it didn’t make much sense to me 🙂
Take a look at this. Try the things he recommends. https://github.com/spatie/laravel-backup/issues/41
Thanks. Unfortunately, that didn’t work for me. I keep searching for a solution, any help would me more than welcome !
Add this to ‘providers’ in config/app.php:
‘app\Providers\DropboxFilesystemServiceProvider’
Thanks Lac!
Sorry did you try Lac advice?
I solved it by removing backup and dropbox, then reinstalling. I guess it might have had something to with file permissions (but I don’t really know). My application was recently updated from 5.0 to 5.1..maybe that had something to do with it. Anyways, all is well now 🙂
Thats good! Glad you figured it out.
Thanks for this guide, it helped me backing up my app!
No problem glad it helped!
I got this error.
[BadMethodCallException]
Call to undefined method League\Flysystem\Filesystem::createDriver
is cause by previously this array in config/filesystem.php outter level.
The fix, this dropbox array should be inside “disk” array. Same level with other providers.
‘dropbox’ => [
‘driver’ => ‘dropbox’,
‘accessToken’ => env(‘DROPBOX_ACCESS_TOKEN’),
‘appSecret’ => env(‘DROPBOX_APP_SECRET’),
],
Thanks for the tuto !
Everything works but when I try a deploy on my Forge server I’ve this error
Generating autoload files
> php artisan clear-compiled
[Symfony\Component\Debug\Exception\FatalThrowableError]
Fatal error: Class ‘App\Providers\DropboxFilesystemServiceProvider’ not found
Script php artisan clear-compiled handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output:
Any idea why ?
Glad it’s helped you! Did you forget to add it to your providers? Look at step 2 of the tutorial.
On Forge getting:
[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the “backup” namespace.
Anybody knows solution?
Try php artisan backup:run
On php artisan there is no command backup:run on list
Dumb mistake, forgotten provider. When added works fine, thanks!
No problem! Glad you got it.
First of thanks for such a nice tutorial… Its of great help.
I tried to follow your instructions and am good to go. I can now run artisan commands and get the backups done and copied to local as well as dropbox.
At the time being I am using Dropbox_Token that is generated for a user that I have kept in .env file.
My goal is to provide a feature in my app where admin can allow access to his dropbox and then the laravel app would keep storing the backups in his dropbox. I would like to show if there is any dropbox account linked and the ability to change it and link another (one at a time only). Thanks in advance
Glad it’s help you! It should be possible. Just store the Dropbox info in the database
Copying .zip file failed because: Could not connect to disk dropbox because: exception ‘Exception’ with message ‘The Dropbox SDK uses 64-bit integers, but it looks like we’re running on a version of PHP that doesn’t support 64-bit integers (PHP_INT_MAX=2147483647). Library: “/home/vagrant/projects/calmacons_master/vendor/dropbox/dropbox-sdk/lib/Dropbox/RequestUtil.php”‘ in /home/vagrant/projects/calmacons_master/vendor/dropbox/dropbox-sdk/lib/Dropbox/RequestUtil.php:22
Are you running it on a 32 bit is?
Helpme.
c:\xampp\htdocs\repositoriotesis\tesis\tienla>php artisan backup:run –only-db
Starting backup…
Dumping database store…
Determining files to backup…
Zipped 1 files…
Copying 2016-10-31-120441.zip (size: 33.27 KB) to disk named dropbox…
Copying .zip file failed because: The Dropbox SDK uses 64-bit integers, but it l
ooks like we’re running on a version of PHP that doesn’t support 64-bit integers
(PHP_INT_MAX=2147483647). Library: “C:\xampp\htdocs\repositoriotesis\tesis\tie
nla\vendor\dropbox\dropbox-sdk\lib\Dropbox\RequestUtil.php”.
Laravel-backup notifier failed because stream_socket_enable_crypto(): SSL operat
ion failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify faile
d
Have you tried upgrading your version of php?
Thanks for the tutorial!
I am getting a HTTP status 401.
I created the APP in dropbox and got the key and secret. I set them as ENV variables.
Any help would be greatly appreciated!
Thank You
Thanks! Can you share any more of the errors?
Sure thing, this is what I got from Spatie:
Important: An error occurred while backing up `My Application`
Exception message: `HTTP status 401 {“error”: “Invalid OAuth2 token.”}`
Exception trace: `#0 /Users/wkinne/Sites/trade-force-hub/vendor/dropbox/dropbox-sdk/lib/Dropbox/Client.php(789): Dropbox\RequestUtil::unexpectedStatus(Object(Dropbox\HttpResponse)) #1 /Users/wkinne/Sites/trade-force-hub/vendor/dropbox/dropbox-sdk/lib/Dropbox/Client.php(745): Dropbox\Client->_getMetadata(‘/http—localho…’, Array) #2 /Users/wkinne/Sites/trade-force-hub/vendor/league/flysystem-dropbox/src/DropboxAdapter.php(194): Dropbox\Client->getMetadata(‘/http—localho…’) #3 /Users/wkinne/Sites/trade-force-hub/vendor/league/flysystem-dropbox/src/DropboxAdapter.php(48): League\Flysystem\Dropbox\DropboxAdapter->getMetadata(‘http—localhos…’) #4 /Users/wkinne/Sites/trade-force-hub/vendor/league/flysystem/src/Filesystem.php(56): League\Flysystem\Dropbox\DropboxAdapter->has(‘http—localhos…’) #5 /Users/wkinne/Sites/trade-force-hub/vendor/league/flysystem/src/Filesystem.php(400): League\Flysystem\Filesystem->has(‘http—localhos…’) #6 /Users/wkinne/Sites/trade-force-hub/vendor/league/flysystem/src/Filesystem.php(81): League\Flysystem\Filesystem->assertAbsent(‘http—localhos…’) #7 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/BackupDestination/BackupDestination.php(82): League\Flysystem\Filesystem->writeStream(‘http—localhos…’, Resource id #10351) #8 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(212): Spatie\Backup\BackupDestination\BackupDestination->write(‘/Users/wkinne/S…’) #9 /Users/wkinne/Sites/trade-force-hub/vendor/laravel/framework/src/Illuminate/Support/Collection.php(228): Spatie\Backup\Tasks\Backup\BackupJob->Spatie\Backup\Tasks\Backup\{closure}(Object(Spatie\Backup\BackupDestination\BackupDestination), 0) #10 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(222): Illuminate\Support\Collection->each(Object(Closure)) #11 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(121): Spatie\Backup\Tasks\Backup\BackupJob->copyToBackupDestinations(‘/Users/wkinne/S…’) #12 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(43): Spatie\Backup\Tasks\Backup\BackupJob->run() #13 [internal function]: Spatie\Backup\Commands\BackupCommand->handle() #14 /Users/wkinne/Sites/trade-force-hub/vendor/laravel/framework/src/Illuminate/Container/Container.php(508): call_user_func_array(Array, Array) #15 /Users/wkinne/Sites/trade-force-hub/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array) #16 /Users/wkinne/Sites/trade-force-hub/vendor/symfony/console/Command/Command.php(254): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #17 /Users/wkinne/Sites/trade-force-hub/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #18 /Users/wkinne/Sites/trade-force-hub/vendor/spatie/laravel-backup/src/Commands/BaseCommand.php(22): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #19 /Users/wkinne/Sites/trade-force-hub/vendor/symfony/console/Application.php(820): Spatie\Backup\Commands\BaseCommand->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #20 /Users/wkinne/Sites/trade-force-hub/vendor/symfony/console/Application.php(187): Symfony\Component\Console\Application->doRunCommand(Object(Spatie\Backup\Commands\BackupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #21 /Users/wkinne/Sites/trade-force-hub/vendor/symfony/console/Application.php(118): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #22 /Users/wkinne/Sites/trade-force-hub/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #23 /Users/wkinne/Sites/trade-force-hub/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #24 {main}`
I found the issue, had the token. My fault!
Thanks for the quick reply!
Great!
i have the same issue, where you fixed? thanks!
I had to generate an Oauth Token and put that in my .env file for the app secret.
Give that a shot!
Class ‘League\Flysystem\AdapterInterface\Controller’ not found
Make sure you installed flysystrm https://github.com/thephpleague/flysystem-dropbox
that is great, thank you
Thanks!
i get this error when try ..
Exception_InvalidAccessToken in RequestUtil.php line 251:
HTTP status 401
{“error”: “Invalid OAuth2 token.”}
Did you add the auth token to your .env file?
Hi, very ice tutorial but I can not get it working. When I try to run “php artisan backup:run –only-db” I get error: Copying zip failed because: There is no disk set for the backup destination. The only disk set in laravel-backup.php is dropbox.
Any idea what is wrong? Thank you.
Thanks! Make sure you have a backup destination set in your laravel-backup.php config. See the destination/Disk section.
this is how it looks:
——
‘destination’ => [
‘filename_prefix’ => ”,
‘disks’ => [ ‘dropbox’],
],
——
Here is complete terminal output:
Starting backup…
Dumping database devshed…
Determining files to backup…
Zipping 1 files…
Created zip containing 1 files. Size is 2.14 KB
Copying zip to disk named dropbox…
Copying zip failed because: There is no disk set for the backup destination.
Backup completed!
I am getting same as @Radim, Someone help please
There are no commands defined in the “backup” namespace.
hi, I try :
php artisan backup:run
Backup failed because The dump process failed with exitcode 127 : Command not found : sh: mysqldump: command not found
.
#0 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/db-dumper/src/DbDumper.php(246): Spatie\DbDumper\Exceptions\DumpFailed::processDidNotEndSuccessfully(Object(Symfony\Component\Process\Process))
#1 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/db-dumper/src/Databases/MySql.php(142): Spatie\DbDumper\DbDumper->checkIfDumpWasSuccessFul(Object(Symfony\Component\Process\Process), ‘/Users/marcospo…’)
#2 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(246): Spatie\DbDumper\Databases\MySql->dumpToFile(‘/Users/marcospo…’)
#3 [internal function]: Spatie\Backup\Tasks\Backup\BackupJob->Spatie\Backup\Tasks\Backup\{closure}(Object(Spatie\DbDumper\Databases\MySql), ‘mysql’)
#4 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Support/Collection.php(1007): array_map(Object(Closure), Array, Array)
#5 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(249): Illuminate\Support\Collection->map(Object(Closure))
#6 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(166): Spatie\Backup\Tasks\Backup\BackupJob->dumpDatabases()
#7 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(142): Spatie\Backup\Tasks\Backup\BackupJob->createBackupManifest()
#8 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(52): Spatie\Backup\Tasks\Backup\BackupJob->run()
#9 [internal function]: Spatie\Backup\Commands\BackupCommand->handle()
#10 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#11 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#12 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#13 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Container/Container.php(572): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#14 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#15 /Users/marcosportillogarcia/sitios/atenea/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#16 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#17 /Users/marcosportillogarcia/sitios/atenea/vendor/spatie/laravel-backup/src/Commands/BaseCommand.php(16): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 /Users/marcosportillogarcia/sitios/atenea/vendor/symfony/console/Application.php(901): Spatie\Backup\Commands\BaseCommand->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 /Users/marcosportillogarcia/sitios/atenea/vendor/symfony/console/Application.php(262): Symfony\Component\Console\Application->doRunCommand(Object(Spatie\Backup\Commands\BackupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /Users/marcosportillogarcia/sitios/atenea/vendor/symfony/console/Application.php(145): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Console/Application.php(89): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /Users/marcosportillogarcia/sitios/atenea/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /Users/marcosportillogarcia/sitios/atenea/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 {main}
Backup failed because: The dump process failed with exitcode 127 : Command not found : sh: mysqldump: command not found
.
Do you have mysql installed?