levgenij / laravel-db-backup
Backup and restore databases. Encrypting dumps. Save dumps to db and uploading to Dropbox. Restore dump from Dropbox.
Requires
- php: >=5.4.0
- illuminate/support: 5.*
This package is not auto-updated.
Last update: 2024-11-18 17:47:51 UTC
README
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