laravel-db-backup
Based off of https://github.com/schickling/laravel-backup with support for Laravel 5 and 5.1., (*1)
Installation
Update your composer.json
file to include this package as a dependency, (*2)
"witty/laravel-db-backup": "dev-master"
Register the service provider by adding it to the providers array in the config/app.php
file., (*3)
'providers' => array(
'Witty\LaravelDbBackup\DBBackupServiceProvider'
)
Configuration
Copy the config file into your project by running, (*4)
php artisan vendor:publish
This will generate a config file like this, (*5)
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'
]
// Use GZIP compression
'compress' => false,
];
All settings are optional and have reasonable default values., (*6)
Usage
Backup
Creates a dump file in app/storage/dumps
, (*7)
$ php artisan db:backup
Use specific database
$ php artisan db:backup --database=mysql
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., (*8)
Uses the aws/aws-sdk-php-laravel package which needs to be configured., (*9)
Restore
Paths are relative to the app/storage/dumps folder., (*10)
Restore a dump
$ php artisan db:restore dump.sql
Restore from last backup dump
$ php artisan db:restore --last-dump
List dumps
$ php artisan db:restore