larkinwhitaker / laravel-db-backup by larkinwhitaker

Easy commands to backup and restore databases for Laravel 5 applications
7,461
15
5
Package Data
Maintainer Username: larkinwhitaker
Maintainer Contact: larkinwhitaker@gmail.com (Larkin Whitaker)
Package Create Date: 2015-06-01
Package Last Update: 2016-07-20
Home Page: http://keystrokecreative.com/
Language: PHP
License: MIT
Last Refreshed: 2024-04-27 03:09:08
Package Statistics
Total Downloads: 7,461
Monthly Downloads: 87
Daily Downloads: 0
Total Stars: 15
Total Watchers: 5
Total Forks: 17
Total Open Issues: 9

laravel-db-backup

Based off of https://github.com/schickling/laravel-backup with support for Laravel 5 and 5.1.

Installation

Update your composer.json file to include this package as a dependency

"witty/laravel-db-backup": "dev-master"

Register the service provider by adding it to the providers array in the config/app.php file.

'providers' => array(
    'Witty\LaravelDbBackup\DBBackupServiceProvider'
)

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'
    ]

    // 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
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.

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
List dumps
$ php artisan db:restore