该软件包提供了一个与框架无关的数据库备份管理器,用于从 S3、Dropbox、FTP、SFTP 和 Rackspace Cloud 转储和恢复数据库。
对于 >=PHP 7.3 使用版本 2+
对于 <PHP 7.2 使用版本 1
观看展示 Laravel 驱动程序实际操作的视频导览,让您了解可能性。
支持MySQL
和PostgreSQL
使用Gzip
压缩
与框架无关
死简单的配置
Laravel 驱动程序
交响乐驱动程序
数据库备份管理器
目录
又快又脏
要求
安装
用法
贡献指南
维护者
向后兼容性中断
执照
配置您的数据库。
// config/database.php'development' => ['type' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// 如果 singleTransaction 设置为 true,则将设置 --single-transcation 标志。// 这对于事务数据库(例如InnoDB.// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction'singleTransaction' => false,// 不转储给定的表// 仅设置表名, 不带数据库名称// 示例: ['table1', 'table2']// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table'ignoreTables' => [],// 使用 ssl 连接到数据库 - 主动 ssl 支持(仅限 mysql) ):'ssl'=>false,// 添加附加选项到转储命令(如 '--max-allowed-packet')'extraParams'=>null, ], '生产' => ['类型' => 'postgresql','主机' => 'localhost','端口' => '5432','用户' => 'postgres','pass' => '密码' ,'数据库' => '测试', ],
配置您的文件系统。
// config/storage.php'local' => ['type' => 'Local','root' => '/path/to/working/directory', ],'s3' => ['type' => 'AwsS3','key' => '','secret' => '','region' => 'us-east-1','version' = > '最新','存储桶' => '','根' => '','use_path_style_endpoint' => false, ],'b2' => ['type' => 'B2','key' => '','accountId' => '','bucket' => '', ],'gcs' => ['type' => 'Gcs','key' => '','secret' => '','version' => '最新','bucket' => '', '根' => '', ],'rackspace' => ['type' => 'Rackspace','用户名' => '','key' => '','container' => '','zone' => '','根' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '','根' => '', ],'ftp' => ['类型' => 'Ftp','主机' => '','用户名' => '','密码' => '','root' => '','端口' => 21,'被动' => true,'ssl' => true,'超时'=> 30, ],'sftp' => ['类型' => 'Sftp','主机' => '','用户名' => '','密码' => '','root' => '','端口' => 21,'超时' => 10,'privateKey' => '', ],'flysystem' => ['type' => 'Flysystem','name' => 's3_backup',//'prefix' => '上传',],'doSpaces' => ['type' => 'AwsS3','key' => '','秘密' => '','region' => '','bucket' => '','root' => '','端点' => '','use_path_style_endpoint' => false, ],'webdav' => ['type' => 'Webdav','baseUri' => 'http://myserver.com','用户名' => '','密码' => '','前缀' => '', ],
备份到任何配置的数据库/从任何配置的数据库恢复。
将开发数据库备份到Amazon S3
。当gzip
完成后,S3 备份路径最终将是test/backup.sql.gz
。
use BackupManagerFilesystemsDestination;$manager = require 'bootstrap.php';$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;
备份到任何配置的文件系统/从任何配置的文件系统恢复。
将数据库文件test/backup.sql.gz
从Amazon S3
恢复到development
数据库。
$manager = require 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');
该软件包不允许您从一种数据库类型备份并恢复到另一种数据库类型。 MySQL 转储与 PostgreSQL 不兼容。
PHP 5.5
MySQL 支持需要mysqldump
和mysql
命令行二进制文件
PostgreSQL 支持需要pg_dump
和psql
命令行二进制文件
Gzip 支持需要gzip
和gunzip
命令行二进制文件
作曲家
运行以下命令以通过 Composer 包含此内容
作曲家需要备份管理器/备份管理器
然后,您需要为要使用的适配器选择适当的包。
# 支持 s3composer 需要 league/flysystem-aws-s3-v3# 支持 b2composer 需要 mhetreramesh/flysystem-backblaze# 支持 google cscomposer 需要 league/flysystem-aws-s3-v2# 安装首选 dropbox v2 驱动程序 需要 spatie/ Flysystem-dropbox# 安装旧版 dropbox v2 驱动程序需要srmklive/flysystem-dropbox-v2# 支持rackspacecomposer 需要 league/flysystem-rackspace# 支持 sftpcomposer 需要 league/flysystem-sftp# 支持 webdav (由 owncloud 和许多其他支持)composer 需要 league/flysystem-webdav
安装后,必须先引导该软件包(初始配置),然后才能使用。
我们在这里提供了一个原生 PHP 示例。
所需的引导可以在此处的示例中找到。
我们建议使用此包提供的 vagrant 配置进行开发和贡献。只需安装 VirtualBox、Vagrant 和 Ansible,然后在根文件夹中运行vagrant up
即可。将为您构建并启动专门为开发包而设计的虚拟机。
贡献时请考虑以下准则:
代码风格为 PSR-2
接口不应以Interface
为后缀,特征不应以Trait
为后缀。
所有方法和类都必须包含文档块。
确保您提交的测试覆盖率至少为 100%。鉴于该项目的简单性,这是有道理的。
在计划添加新功能的拉取请求时,明智的做法是提交提案以确保与项目目标的兼容性。
这个包由 Shawn McCool 和你维护!
删除对 symfony 2 的支持。特别是 symfony/process 版本 < 3.x
该软件包根据 MIT 许可证获得许可。疯狂吧。