levgenij/laravel-db-backup

备份数据库并恢复。加密转储。将转储保存到数据库并上传到Dropbox。从Dropbox恢复转储。

1.0.4 2018-09-30 12:24 UTC

This package is not auto-updated.

Last update: 2024-09-23 17:08:40 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