myshell / laravel-db-backup
备份数据库并恢复。加密备份文件。将备份文件保存到数据库和上传到Dropbox。从Dropbox恢复备份。
1.1.3
2020-06-04 02:58 UTC
Requires
- php: >=5.4.0
- spatie/flysystem-dropbox: ^1.0
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