backup-manager / backup-manager
一个框架无关的数据库备份管理器,具有用户定义的程序支持,并支持S3、Dropbox、FTP、SFTP等,还提供了流行框架的驱动程序。
Requires
- php: ^7.4 || ^8.0
- league/flysystem: ^1.0.64 || ^2.0 || ^3.0
- symfony/process: ^4.4 || ^5.0 || ^6.0
Requires (Dev)
- aws/aws-sdk-php: ^3.133.20
- league/flysystem-aws-s3-v3: ^1.0.24
- league/flysystem-rackspace: ^1.0
- league/flysystem-sftp: ^1.0
- league/flysystem-webdav: ^1.0
- phpspec/phpspec: ^7.2
- spatie/flysystem-dropbox: ^1.2
- srmklive/flysystem-dropbox-v2: ^1.0
- superbalist/flysystem-google-storage: ^7.2
Suggests
- league/flysystem-aws-s3-v3: AWS S3 adapter support.
- league/flysystem-rackspace: Rackspace adapter support.
- league/flysystem-sftp: SFTP adapter support.
- league/flysystem-webdav: Webdav adapter support.
- mhetreramesh/flysystem-backblaze: B2 adapter support.
- srmklive/flysystem-dropbox-v2: Dropbox API v2 adapter support.
- superbalist/flysystem-google-storage: Google Cloud Storage adapter support.
- 3.1.0
- 3.0.1
- 3.0
- 2.1.0
- 2.0.x-dev
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0
- 1.4.1
- 1.4
- 1.3.0
- 1.2.1
- 1.2
- 1.1.3
- 1.1.1
- 1.1.0
- dev-master / 1.0.x-dev
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.4.x-dev
- 0.3.10
- 0.3.9
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.1
- 0.1
- dev-add-ansible
- dev-procedure-functional-testing
This package is auto-updated.
Last update: 2024-09-08 11:36:31 UTC
README
此软件包提供了一个框架无关的数据库备份管理器,可以将数据库导出到S3、Dropbox、FTP、SFTP和Rackspace Cloud,并从这些位置恢复数据库。
- 对于PHP 7.3或更高版本,请使用版本2+
- 对于PHP 7.2或更低版本,请使用版本1
观看视频教程,了解Laravel驱动程序的实际操作,以了解可能实现的功能。
- 支持
MySQL
和PostgreSQL
- 使用
Gzip
压缩 - 框架无关
- 配置简单
- Laravel 驱动程序
- Symfony 驱动程序
目录
快速入门
配置您的数据库。
// config/database.php 'development' => [ 'type' => 'mysql', 'host' => 'localhost', 'port' => '3306', 'user' => 'root', 'pass' => 'password', 'database' => 'test', // If singleTransaction is set to true, the --single-transcation flag will be set. // This is useful on transactional databases like InnoDB. // https://dev.mysqlserver.cn/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction 'singleTransaction' => false, // Do not dump the given tables // Set only table names, without database name // Example: ['table1', 'table2'] // https://dev.mysqlserver.cn/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table 'ignoreTables' => [], // using ssl to connect to your database - active ssl-support (mysql only): 'ssl'=>false, // add additional options to dump-command (like '--max-allowed-packet') 'extraParams'=>null, ], 'production' => [ 'type' => 'postgresql', 'host' => 'localhost', 'port' => '5432', 'user' => 'postgres', 'pass' => 'password', 'database' => 'test', ],
配置您的文件系统。
// config/storage.php 'local' => [ 'type' => 'Local', 'root' => '/path/to/working/directory', ], 's3' => [ 'type' => 'AwsS3', 'key' => '', 'secret' => '', 'region' => 'us-east-1', 'version' => 'latest', 'bucket' => '', 'root' => '', 'use_path_style_endpoint' => false, ], 'b2' => [ 'type' => 'B2', 'key' => '', 'accountId' => '', 'bucket' => '', ], 'gcs' => [ 'type' => 'Gcs', 'key' => '', 'secret' => '', 'version' => 'latest', 'bucket' => '', 'root' => '', ], 'rackspace' => [ 'type' => 'Rackspace', 'username' => '', 'key' => '', 'container' => '', 'zone' => '', 'root' => '', ], 'dropbox' => [ 'type' => 'DropboxV2', 'token' => '', 'key' => '', 'secret' => '', 'app' => '', 'root' => '', ], 'ftp' => [ 'type' => 'Ftp', 'host' => '', 'username' => '', 'password' => '', 'root' => '', 'port' => 21, 'passive' => true, 'ssl' => true, 'timeout' => 30, ], 'sftp' => [ 'type' => 'Sftp', 'host' => '', 'username' => '', 'password' => '', 'root' => '', 'port' => 21, 'timeout' => 10, 'privateKey' => '', ], 'flysystem' => [ 'type' => 'Flysystem', 'name' => 's3_backup', //'prefix' => 'upload', ], 'doSpaces' => [ 'type' => 'AwsS3', 'key' => '', 'secret' => '', 'region' => '', 'bucket' => '', 'root' => '', 'endpoint' => '', 'use_path_style_endpoint' => false, ], 'webdav' => [ 'type' => 'Webdav', 'baseUri' => 'http://myserver.com', 'userName' => '', 'password' => '', 'prefix' => '', ],
备份到/从任何配置的数据库中恢复。
将开发数据库备份到 Amazon S3
。当使用 gzip
处理后,S3备份路径将是 test/backup.sql.gz
。
use BackupManager\Filesystems\Destination; $manager = require 'bootstrap.php'; $manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip');
备份到/从任何配置的文件系统中恢复。
从 Amazon S3
恢复数据库文件 test/backup.sql.gz
到 开发
数据库。
$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
运行以下命令以通过Composer包含此软件包
composer require backup-manager/backup-manager
然后,您需要选择您想要使用的适配器的适当软件包。
# to support s3 composer require league/flysystem-aws-s3-v3 # to support b2 composer require mhetreramesh/flysystem-backblaze # to support google cs composer require league/flysystem-aws-s3-v2 # to install the preferred dropbox v2 driver composer required spatie/flysystem-dropbox # to install legacy dropbox v2 driver composer require srmklive/flysystem-dropbox-v2 # to support rackspace composer require league/flysystem-rackspace # to support sftp composer require league/flysystem-sftp # to support webdav (supported by owncloud nad many other) composer require league/flysystem-webdav
使用
安装完成后,在可以使用之前,必须启动此软件包(进行初始配置)。
我们提供了一个本地的PHP示例 在此处。
所需的启动可以 在此示例中找到。
贡献指南
我们建议使用此软件包附带的vagrant配置进行开发和贡献。只需安装VirtualBox、Vagrant和Ansible,然后在根目录中运行vagrant up
即可。将为您构建和启动一个专门用于此软件包开发的虚拟机。
在贡献时,请考虑以下指南
- 代码风格为PSR-2
- 接口不应该以
Interface
后缀,特质不应该以Trait
后缀。
- 接口不应该以
- 所有方法和类必须包含文档块。
- 确保您提交的测试至少有100%的覆盖率。鉴于项目的简单性,这是合理的。
- 在计划拉取请求以添加新功能时,可能明智的是 提交一个提案,以确保与项目目标兼容。
维护者
此软件包由 Shawn McCool 和您共同维护!
向后兼容性破坏
3.0
删除对symfony 2的支持。特别是symfony/process版本小于3.x
许可证
本软件包遵循MIT许可协议。尽情使用。