levgenij/laravel-db-backup
laravel-db-backup
Based off of https://github.com/schickling/laravel-backup with support for Laravel 5.*.
Installation
Run composer command :
composer require wladmonax/laravel-db-backup
Or
Update your composer.json file to include this package as a dependency
"wladmonax/laravel-db-backup": "1.1.*",
Register the service provider by adding it to the providers array in the config/app.php file.
'providers' => array(
'Witty\LaravelDbBackup\DBBackupServiceProvider'
)
or
'providers' => array(
Witty\LaravelDbBackup\DBBackupServiceProvider::class
)
Run command to creating tables:
$ php artisan migrate
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
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.