myshell / laravel-db-backup

备份数据库并恢复。加密备份文件。将备份文件保存到数据库和上传到Dropbox。从Dropbox恢复备份。

1.1.3 2020-06-04 02:58 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:37:39 UTC


README

基于https://github.com/schickling/laravel-backup,支持Laravel 5.*。

安装

运行composer命令

composer require wladmonax/laravel-db-backup

或者

更新你的composer.json文件,将此包作为依赖项包含

"wladmonax/laravel-db-backup": "1.1.*",

通过将服务提供者添加到config/app.php文件中的提供者数组中注册服务提供者。

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

或者

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

运行创建表的命令

$ php artisan migrate

配置

通过运行将配置文件复制到你的项目中

php artisan vendor:publish

这将生成一个类似以下的配置文件

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,
];

所有设置都是可选的,并具有合理的默认值。

使用方法

备份

app/storage/dumps中创建一个备份文件

$ php artisan db:backup
使用特定数据库
$ php artisan db:backup --database=mysql
需要加密数据库
$ php artisan db:backup --encrypt
将备份保存到Dropbox
$ php artisan db:backup --dropbox
你可以合并选项,如下所示
$ php artisan db:backup --dropbox --encrypt
上传到AWS S3
$ php artisan db:backup --upload-s3 your-bucket

如果你不想保留本地SQL备份的副本,可以使用--keep-only-s3选项。

使用aws/aws-sdk-php-laravel包,该包需要配置。
使用spatie/flysystem-dropbox包。

恢复

路径相对于app/storage/dumps文件夹。

恢复备份
$ php artisan db:restore dump.sql
从最后的备份恢复
$ php artisan db:restore --last-dump
从Dropbox恢复
$ php artisan db:restore --dropbox-dump=filename.sql
从Dropbox最后的备份恢复
$ php artisan db:restore --dropbox-last-dump
列出备份
$ php artisan db:restore