backup-manager / symfony
为 Symfony2 提供简单数据库备份管理器,支持 S3、Rackspace、Dropbox、FTP、SFTP。
3.2.1
2021-10-17 19:59 UTC
Requires
- php: ^7.3 || ^8.0
- backup-manager/backup-manager: ^3.0
- nyholm/dsn: ^2.0
- symfony/config: ^3.4 || ^4.4 || ^5.0
- symfony/console: ^3.4 || ^4.4 || ^5.0
- symfony/dependency-injection: ^3.4 || ^4.4 || ^5.0
- symfony/filesystem: ^3.4 || ^4.4 || ^5.0
- symfony/framework-bundle: ^3.4 || ^4.4 || ^5.0
- symfony/http-kernel: ^3.4 || ^4.4 || ^5.0
- symfony/yaml: ^3.4 || ^4.4 || ^5.0
Requires (Dev)
Suggests
- league/flysystem-aws-s3-v3: To use AWS S3, version 3
- league/flysystem-rackspace: To use Rackspace
- league/flysystem-sftp: To use sftp
- mhetreramesh/flysystem-backblaze: To use B2
- srmklive/flysystem-dropbox-v2: To use Dropbox
- superbalist/flysystem-google-storage: Google Cloud Storage adapter support.
README
为 Symfony 提供支持 S3、Rackspace、Dropbox、FTP、SFTP 的简单数据库备份管理器。
此包引入了框架无关的 Backup Manager 并提供与 Symfony 的无缝集成。
安装
步骤 1:下载包
打开命令行,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require backup-manager/symfony
此命令要求您全局安装了 Composer,具体请参阅 Composer 文档中的 安装章节。
步骤 2(使用 Flex):启用包
您无需做任何其他操作。包已自动启用,您在 config/packages/bm_backup_manager.yml
中有一些默认配置。
步骤 2(不使用 Flex):启用包
如果您不使用 Symfony Flex,您需要将包添加到项目中 app/AppKernel.php
文件中注册的包列表中来启用它。
// config/bundles.php return [ BM\BackupManagerBundle\BMBackupManagerBundle::class => ['all' => true], // ... ];
步骤 3:配置您的数据库和文件系统
# config/packages/bm_backup_manager.yml bm_backup_manager: database: development: type: mysql host: localhost port: 3306 user: root pass: password database: test ignoreTables: ['foo', 'bar'] # If DSN is specified, it will override other values dsn: 'mysql://root:root_pass@127.0.0.1:3306/test_db' production: type: postgresql host: localhost port: 5432 user: postgres pass: password database: test # You could also use a environment variable dsn: '%env(resolve:DATABASE_URL)%' storage: local: type: Local root: /path/to/working/directory s3: type: AwsS3 key: secret: region: us-east-1 version: latest bucket: root: b2: type: B2 key: accountId: bucket: rackspace: type: Rackspace username: password: container: 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:
使用方法
从任何配置的数据库进行备份。
将开发数据库备份到 Amazon S3
。备份路径最终将是经过 gzip
处理的 test/backup.sql.gz
。
class Foo { private $backupManager; public function __construct(BackupManager $backupManager) { $this->backupManager = $backupManager; } public function bar() { $this->backupManager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip'); } }
或者使用命令
php bin/console backup-manager:backup development s3 -c gzip --filename test/backup.sql
从任何配置的文件系统中恢复。
从 Amazon S3
恢复数据库文件 test/backup.sql.gz
到 development
数据库。
class Foo { private $backupManager; public function __construct(BackupManager $backupManager) { $this->backupManager = $backupManager; } public function bar() { $this->backupManager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip'); } }
或者使用命令
php bin/console backup-manager:restore development s3 test/backup.sql.gz -c gzip
此包不允许您从一种数据库类型备份并恢复到另一种类型。MySQL 备份与 PostgreSQL 不兼容。
需求
- PHP 7.3
- MySQL 支持 require
mysqldump
和mysql
命令行二进制文件 - PostgreSQL 支持 require
pg_dump
和psql
命令行二进制文件 - Gzip 支持 require
gzip
和gunzip
命令行二进制文件