fezfez / backup-manager
一个不依赖于框架的数据库备份管理器,具有用户自定义的进程,并支持S3、Dropbox、FTP、SFTP等,还有对流行框架的驱动程序。
0.4.2
2023-01-08 14:39 UTC
Requires
- php: ~8.1.0 || ~8.2.0
- symfony/process: ^v5.4.8 || ^6.2
Requires (Dev)
- doctrine/coding-standard: ^11.1
- infection/infection: ^0.26.16
- phpunit/phpunit: ^9.5.27
- psalm/plugin-phpunit: ^0.18.4
- vimeo/psalm: ^5.4
This package is auto-updated.
Last update: 2024-09-10 02:17:50 UTC
README
此包提供了一个不依赖于框架的数据库备份管理器,用于将数据库导出到任何文件系统以及从任何文件系统恢复数据库。
- 支持
MySQL
和PostgreSQL
- 使用
Gzip
压缩 - 框架无关
- 简单的配置
快速而简单的备份和恢复
备份到/从任何配置的数据库。
将开发数据库备份到 Amazon S3
。备份路径最终将是 test/backup.sql.gz
,当完成 gzip
处理后。
$local = new \League\Flysystem\Adapter\Local(getcwd() . '/data/'); $webdav = new \League\Flysystem\WebDAV\WebDAVAdapter(new \Sabre\DAV\Client([ 'baseUri' => getenv('WEBDAV_HOST'), 'userName' => getenv('WEBDAV_username'), 'password' => getenv('WEBDAV_password'), ]), 'remote.php/webdav/'); $manager = \Fezfez\BackupManager\BackupManager::create(); $manager->backup( new LeagueFilesystemAdapaterV1($local), new \Fezfez\BacpkupManager\Databases\MysqlDatabase( getenv('DB_HOST'), getenv('DB_PORT'), getenv('DB_USER'), getenv('DB_PASSWORD'), getenv('DB_DATABASE') ), [ new \Fezfez\BackupManager\Filesystems\Destination(new LeagueFilesystemAdapaterV1($webdav), 'test/backup.sql') ], \Fezfez\BackupManager\Compressors\GzipCompressor::create() ); $manager->restore( new LeagueFilesystemAdapaterV1($local), new LeagueFilesystemAdapaterV1($webdav), 'test/backup.sql', new \Fezfez\BacpkupManager\Databases\MysqlDatabase( getenv('DB_HOST'), getenv('DB_PORT'), getenv('DB_USER'), getenv('DB_PASSWORD'), getenv('DB_DATABASE') ), \Fezfez\BackupManager\Compressors\GzipCompressor::create() );
备份到/从任何配置的文件系统
将 test/backup.sql.gz
从 Amazon S3
恢复到 开发
数据库。
$manager = require 'bootstrap.php'; $manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');
此包不允许您从一个数据库类型备份并恢复到另一个数据库类型。MySQL 的转储文件不兼容 PostgreSQL。
需求
- PHP ^8.0
- MySQL 支持需要
mysqldump
和mysql
命令行二进制文件 - PostgreSQL 支持需要
pg_dump
和psql
命令行二进制文件 - Gzip 支持需要
gzip
和gunzip
命令行二进制文件
安装
Composer
运行以下命令通过 Composer 包含此包:
composer require fezfez/backup-manager
然后,您需要选择您想要使用的适配器的适当包。
# to support league-flysystem:^1.0 composer require fezfez/backup-manager-league-flysystem-v1 # to support league-flysystem:^2.0 composer require fezfez/backup-manager-league-flysystem-v2 # to support league-flysystem:^3.0 composer require fezfez/backup-manager-league-flysystem-v3
用法
安装后,在可以使用之前,必须对包进行初始化配置(初始配置)。
我们在此处提供了一个原生的 PHP 示例 示例。
所需的初始化配置可以在以下示例中找到 这里。
贡献指南
我们建议使用此包提供的 vagrant 配置进行开发和贡献。只需安装 VirtualBox、Vagrant 和 Ansible,然后在根目录中运行 vagrant up
。将为您构建并启动一个专门为该包的开发设计的虚拟机。
在贡献时请考虑以下指南
- 代码风格为 PSR-2
- 接口不应以
Interface
结尾,特质不应以Trait
结尾。
- 接口不应以
- 所有方法和类都必须包含文档块。
- 确保您提交的测试至少有 100% 的覆盖率。鉴于项目的简单性,这只是为了使事情变得合理。
- 在计划拉取请求以添加新功能时,提交一个提案以确保与项目的目标兼容可能是明智的 这里。
向后兼容性中断
许可
此包根据 MIT 许可证 许可。尽情使用。