backup-gerente / laravel
数据库备份管理器,无缝集成Laravel 5、6或8,支持用户自定义程序,以及S3、Dropbox、FTP、SFTP等多种存储服务。
Requires
- php: ^7.3||^7.4
- backup-manager/backup-manager: ^3.0
- illuminate/console: ^5.5||^6||^7
- illuminate/container: ^5.5||^6||^7
- illuminate/support: ^5.5||^6||^7
- symfony/process: ^3||^4||^5
Requires (Dev)
- mockery/mockery: dev-master
- satooshi/php-coveralls: ~0.6
This package is auto-updated.
Last update: 2024-09-19 00:17:14 UTC
README
本包引入了框架无关的Backup Manager,并提供与Laravel的顺畅集成。
观看视频教程,了解本包能实现的功能。
注意:此包仅适用于Laravel集成。有关框架无关核心包(或Symfony驱动程序)的信息,请参阅基本包仓库。
目录
稳定性通知
足够稳定,您需要了解文件系统权限。
本包正在积极开发中,我们希望得到反馈以改进它。请随时提交反馈。
要求
- PHP 7.3+
- Laravel 5.5+
- MySQL支持需要
mysqldump
和mysql
命令行二进制文件 - PostgreSQL支持需要
pg_dump
和psql
命令行二进制文件 - Gzip支持需要
gzip
和gunzip
命令行二进制文件
安装
Composer
运行以下命令通过Composer引入
composer require backup-gerente/laravel
然后,您需要选择您想使用的适配器的适当包。
# to support s3 or google cs composer require league/flysystem-aws-s3-v3 # to support dropbox composer require srmklive/flysystem-dropbox-v2 # to support rackspace composer require league/flysystem-rackspace # to support sftp composer require league/flysystem-sftp # to support gcs composer require superbalist/flysystem-google-storage
Laravel 5配置
要将此安装到Laravel项目中,首先运行composer install,然后将以下其中一个类添加到config/app.php的服务提供者列表中。
// FOR LARAVEL 5.5 + BackupManager\Laravel\Laravel55ServiceProvider::class,
发布存储配置文件。
php artisan vendor:publish --provider="BackupManager\Laravel\Laravel55ServiceProvider"
备份管理器将使用Laravel的数据库配置。但它不会知道可能与其他环境相关的任何连接,因此最好在config/database.php文件中列出多个连接。
我们还可以通过在.env文件上配置额外参数来在我们的备份管理器命令上添加额外参数
BACKUP_MANAGER_EXTRA_PARAMS="--column-statistics=0 --max-allowed-packet"
Lumen配置
要将此安装到Lumen项目中,首先运行composer install,然后将配置文件加载器和一个以下服务提供者添加到您的bootstrap/app.php中。
// FOR LUMEN 5.5 AND ABOVE $app->configure('backup-manager'); $app->register(BackupManager\Laravel\Lumen55ServiceProvider::class);
将vendor/backup-manager/laravel/config/backup-manager.php文件复制到config/backup-manager.php,并根据您的需求进行配置。
IoC解析
BackupManager\Manager
可以通过Laravel的IoC容器自动解析。
use BackupManager\Manager; public function __construct(Manager $manager) { $this->manager = $manager; }
也可以手动从容器中解析。
$manager = App::make(\BackupManager\Manager::class);
Artisan命令
有三个可用命令db:backup
、db:restore
和db:list
。
所有这些都会提示您一些简单的问题,以成功执行命令。
24小时计划任务的示例命令
php artisan db:backup --database=mysql --destination=dropbox --destinationPath=project --timestamp="d-m-Y" --compression=gzip
此命令将使用mysql和gzip压缩将您的数据库备份到dropbox,路径为/backups/project/DATE.gz(例如:/backups/project/31-7-2015.gz)
计划备份
您可以使用Laravel的调度器来计划备份。
/** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { $environment = config('app.env'); $schedule->command( "db:backup --database=mysql --destination=s3 --destinationPath=/{$environment}/projectname --timestamp="Y_m_d_H_i_s" --compression=gzip" )->twiceDaily(13,21); }
贡献指南
我们建议使用本包附带的开发和贡献vagrant配置。只需安装VirtualBox、Vagrant和Ansible,然后在根目录中运行vagrant up
。将为您构建和启动一个专门为开发此包而设计的虚拟机。
在贡献时,请考虑以下指南
- 请遵守项目的代码风格,它基本上是PSR-2,但有少数差异。
- NOT运算符紧邻括号时,应被单个空格包围。
if ( ! is_null(...)) {
。 - 接口不应以
Interface
结尾,特质不应以Trait
结尾。
- NOT运算符紧邻括号时,应被单个空格包围。
- 所有方法和类必须包含文档块。
- 确保您提交的测试至少达到100%的覆盖率。
- 在计划拉取请求以添加新功能时,提交一个提案可能是明智的,以确保与项目的目标兼容。
维护者
此包由Shawn McCool和开源英雄维护。
许可证
此包采用MIT许可证。
变更日志
2.0
发布于2020-04-30
移除对5.5以下所有Laravel版本的支持。所有旧版本应使用backup-manager ^1.0
。
由于Laravel / Symfony中的许多依赖项已更改,无法在同一个代码库中支持更新版本。版本^1.0
是稳定的,并且总是接受新的稳定性修复(我们已经很长时间没有看到需要修复的内容了)。