laravel-backups maintained by skcin7
Description
Package to manage database backups in a Laravel project. Easily integrates with Dropbox and AWS S3.
Author
Last update
2019/09/13 19:32
(dev-master)
License
Downloads
18
Laravel Backups
Package to manage database backups in a Laravel project. Easily integrates with Dropbox and AWS S3.
This package is based on wladmonax/laravel-db-backup so credit to them for their great work.
Table of Contents
Installation
Run Composer command: composer require skcin7/laravel-backups
Configuration
Copy the config file into your project by running
php artisan vendor:publish
This will generate a config file like this
return [
// add a backup folder in the app/database/ or your dump folder
'path' => app_path() . '/database/backup/',
// add the path to the restore and backup command of mysql
// this exemple is if your are using MAMP server on a mac
// on windows: 'C:\\...\\mysql\\bin\\'
// on linux: '/usr/bin/'
// trailing slash is required
'mysql' => [
'dump_command_path' => '/Applications/MAMP/Library/bin/',
'restore_command_path' => '/Applications/MAMP/Library/bin/',
],
// s3 settings
's3' => [
'path' => 'your/s3/dump/folder'
]
//dropbox settings
'dropbox' => [
'accessToken' => DROPBOX_ACCESS_TOKEN,
'appSecret' => DROPBOX_APP_SECRET,
'prefix' => DROPBOX_PREFIX, //this is name of your dropbox folder
],
//encrypt settings
'encrypt' => [
'key' => ENCRYPT_KEY
],
// Use GZIP compression
'compress' => false,
];
All settings are optional and have reasonable default values.
Usage
Backup
Creates a dump file in app/storage/dumps
$ php artisan db:backup
Use specific database
$ php artisan db:backup --database=mysql
Need ecnrypt db
$ php artisan db:backup --encrypt
Save dump to dropbox
$ php artisan db:backup --dropbox
You can merge options like this
$ php artisan db:backup --dropbox --encrypt
Upload to AWS S3
$ php artisan db:backup --upload-s3 your-bucket
You can use the --keep-only-s3 option if you don't want to keep a local copy of the SQL dump.
Uses the aws/aws-sdk-php-laravel package which needs to be configured.
Uses the spatie/flysystem-dropbox package.
Restore
Paths are relative to the app/storage/dumps folder.
Restore a dump
$ php artisan db:restore dump.sql
Restore from last backup dump
$ php artisan db:restore --last-dump
Restore from Dropbox
$ php artisan db:restore --dropbox-dump=filename.sql
Restore from Dropbox last dump
$ php artisan db:restore --dropbox-last-dump
List dumps
$ php artisan db:restore