davmixcool / php-dbcloud
简单地将PostgreSql或MySql数据库备份到云端
0.8.2
2018-11-22 07:01 UTC
Requires
- php: ^5.5.9 || ^7.0
- league/flysystem: ^1.0
- symfony/process: ^2.1 || ^3.0 || ^4.0
Requires (Dev)
- aws/aws-sdk-php: ~3.0
- dropbox/dropbox-sdk: ~1.1
- league/flysystem-aws-s3-v3: ~1.0
- league/flysystem-dropbox: ~1.0
- league/flysystem-sftp: ~1.0
- phpspec/phpspec: ~2.1
- srmklive/flysystem-dropbox-v2: ~1.0
Suggests
- league/flysystem-aws-s3-v2: GoogleCS adapter support.
- league/flysystem-aws-s3-v3: AwsS3 adapter support.
- league/flysystem-dropbox: Dropbox API adapter support.
- league/flysystem-sftp: Sftp adapter support.
- srmklive/flysystem-dropbox-v2: Dropbox API v2 adapter support.
This package is auto-updated.
Last update: 2024-09-22 20:39:54 UTC
README
PHP-DBCLOUD 是一个 PHP 库,用于备份您的 PostgreSql / MySql 数据库并将其上传到云端。它还支持从云端恢复已备份的数据库。
特性
-
创建备份
- MySQL
- PostgreSQL
-
压缩备份
- gZip
-
同步备份到其他位置
- Amazon s3
- Dropbox
- Google Cloud Storage
- FTP
- SFTP
要求
- PHP 5.5
- MySQL 支持 需要
mysqldump
和mysql
命令行二进制文件 - PostgreSQL 支持 需要
pg_dump
和psql
命令行二进制文件 - Gzip 支持 需要
gzip
和gunzip
命令行二进制文件
步骤
安装
Composer
运行以下命令通过 Composer 包含此内容
composer require davmixcool/php-dbcloud
然后,您需要选择您想要使用的适配器的适当包。
# to support Amazon s3 composer require league/flysystem-aws-s3-v3 # to support Dropbox (api v1) composer require srmklive/flysystem-dropbox # to support Dropbox (api v2) composer require srmklive/flysystem-dropbox-v2 # to support Google Cloud Storage composer require league/flysystem-aws-s3-v2 # to support Sftp composer require league/flysystem-sftp
配置
配置您的数据库
//config/database.php return [ '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. '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 return [ 'local' => [ 'type' => 'Local', 'root' => '/path/to/working/directory', ], 's3' => [ 'type' => 'AwsS3', 'key' => '', 'secret' => '', 'region' => 'us-east-1', 'version' => 'latest', 'bucket' => '', 'root' => '', ], 'gcs' => [ 'type' => 'Gcs', 'key' => '', 'secret' => '', 'version' => 'latest', 'bucket' => '', 'root' => '', ], 'dropbox-v2' => [ 'type' => 'DropboxV2', 'token' => '', 'key' => '', 'secret' => '', 'app' => '', 'root' => '', ], 'dropbox-v1' => [ 'type' => 'DropboxV1', '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' => '', ], ]
使用方法
安装完成后,必须在初始配置后启动包才能使用。
启动包
use PhpDbCloud\Config\Config; use PhpDbCloud\Filesystems; use PhpDbCloud\Databases; use PhpDbCloud\Compressors; use PhpDbCloud\Sync; // build providers $filesystems = new Filesystems\FilesystemProvider(Config::fromPhpFile('config/storage.php')); $filesystems->add(new Filesystems\Awss3Filesystem); $filesystems->add(new Filesystems\GcsFilesystem); $filesystems->add(new Filesystems\DropboxV1Filesystem); $filesystems->add(new Filesystems\DropboxV2Filesystem); $filesystems->add(new Filesystems\FtpFilesystem); $filesystems->add(new Filesystems\LocalFilesystem); $filesystems->add(new Filesystems\SftpFilesystem); $databases = new Databases\DatabaseProvider(Config::fromPhpFile('config/database.php')); $databases->add(new Databases\MysqlDatabase); $databases->add(new Databases\PostgresqlDatabase); $compressors = new Compressors\CompressorProvider; $compressors->add(new Compressors\GzipCompressor); $compressors->add(new Compressors\NullCompressor); // build sync return new Sync($filesystems, $databases, $compressors);
备份到配置的数据库
将开发数据库备份到 Dropbox Api V2
。最终,当对它完成 gzip
后,Dropbox 备份路径将为 test/backup.sql.gz
。
use PhpDbCloud\Filesystems\Destination; $sync = require 'bootstrap.php'; $sync->makeBackup()->run('development', [new Destination('dropbox-v2', 'test/backup.sql')], 'gzip');
从配置的数据库恢复
从 Dropbox Api V2
将数据库文件 test/backup.sql.gz
恢复到 development
数据库。
$sync = require 'bootstrap.php'; $sync->makeRestore()->run('dropbox-v2', 'test/backup.sql.gz', 'development', 'gzip');
此包不允许您从一种数据库类型备份并恢复到另一种类型。MySQL 备份与 PostgreSQL 不兼容。
示例
在这里查看示例 here。
维护者
此包由 David Oti 和您维护!
许可证
此包根据 MIT 许可证 许可。