branlute / backup-manager-symfony
一个简单的用于Symfony2的数据库备份管理器,支持S3、Rackspace、Dropbox、FTP、SFTP。
4.0.0
2023-01-15 17:25 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 || ^6.0
- symfony/console: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/dependency-injection: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/filesystem: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/framework-bundle: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/http-kernel: ^3.4 || ^4.4 || ^5.0 || ^6.0
- symfony/yaml: ^3.4 || ^4.4 || ^5.0 || ^6.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
。备份路径最终将是 test/backup.sql.gz
,当使用 gzip
处理完毕后。
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支持需要
mysqldump
和mysql
命令行二进制文件 - PostgreSQL支持需要
pg_dump
和psql
命令行二进制文件 - Gzip支持需要
gzip
和gunzip
命令行二进制文件