Skip to content

Backup and restore databases. Encrypting dumps. Save dumps to db and uploading to Dropbox. Restore dump from Dropbox.

Notifications You must be signed in to change notification settings

wladmonax/laravel-db-backup

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Backup and restore databases. Encrypting dumps. Save dumps to db and uploading to Dropbox. Restore dump from Dropbox.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%