heybigname/backup-manager

此包已被废弃且不再维护。作者建议使用 backup-manager/backup-manager 包。

数据库备份管理器,支持将数据库导出到和从 S3、Dropbox、FTP 和 SFTP 恢复数据库。

0.3.9 2014-09-12 12:52 UTC

This package is auto-updated.

Last update: 2022-02-01 12:34:21 UTC


README

此仓库已被完全移除,应不再使用。请在新版本Backup Manager中查找。

严肃地说,不要使用此仓库。

数据库备份管理器

Latest Stable Version License Build Status Coverage Status Total Downloads

  • 支持 MySQLPostgreSQL
  • 使用 Gzip 压缩
  • 框架无关
  • 简单配置
  • 可选的 MVC 框架集成 Laravel

此包完全与框架无关。Mitchell 制作了一个 视频介绍,展示了 Laravel 集成,让您了解此包可以做什么。

目录

稳定性说明

足够稳定,但您需要了解权限。

此包正在积极开发中,我们希望收到反馈以改进它。 请随时提交反馈。

快速配置

配置您的数据库。

// config/database.php
'development' => [
    'type' => 'mysql',
    'host' => 'localhost',
    'port' => '3306',
    'user' => 'root',
    'pass' => 'password',
    'database' => 'test',
],
'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' => Aws\Common\Enum\Region::US_EAST_1,
    'bucket' => '',
    'root'   => '',
],
'rackspace' => [
    'type' => 'Rackspace',
    'username' => '',
    'key' => '',
    'container' => '',
    'zone' => '',
    'root' => '',
],
'dropbox' => [
    'type' => 'Dropbox',
    '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 处理后,S3 备份路径将是 test/backup.sql.gz

$manager = require 'bootstrap.php';
$manager->makeBackup()->run('development', '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.4
  • MySQL 支持 requires mysqldumpmysql 命令行程序
  • PostgreSQL 支持 requires pg_dumppsql 命令行程序
  • Gzip 支持 requires gzipgunzip 命令行程序

安装

Composer

运行以下命令通过 Composer 包含

composer require heybigname/backup-manager

然后,您需要选择您想使用的适配器的适当包。

# to support s3
composer require league/flysystem-aws-s3-v2

# to support dropbox
composer require league/flysystem-dropbox

# to support rackspace
composer require league/flysystem-rackspace

# to support sftp
composer require league/flysystem-sftp

使用

安装后,包必须进行引导(初始配置)才能使用。如果您使用 Laravel,则直接跳转到 Laravel 集成部分

我们在这里提供了一个原生的PHP示例。点击这里查看

所需的引导步骤可以在以下示例中找到:点击这里

集成

备份管理器很容易集成到您喜欢的框架中。我们包含了Laravel集成。我们绝对接受pull-requests。

Laravel

要将备份管理器安装到Laravel项目中,首先执行composer install,然后向您的config/app.php服务提供者列表中添加以下类。

'BigName\BackupManager\Integrations\Laravel\BackupManagerServiceProvider',

然后,发布并修改配置文件以适应您的需求。

php artisan config:publish heybigname/backup-manager --path=vendor/heybigname/backup-manager/config

备份管理器将使用Laravel的数据库配置。

IoC解析

由于Laravel的IoC容器,可以使用构造函数注入自动解析Manager

use BigName\BackupManager\Manager;

public function __construct(Manager $manager) {
    $this->manager = $manager;
}

也可以从容器中手动解析。

$manager = App::make('BigName\BackupManager\Manager');

Artisan命令

有三个命令可用:db:backupdb:restoredb:list

所有这些都会提示您进行简单的提问以成功执行命令。

贡献指南

我们建议使用此包附带的开发和贡献的vagrant配置。只需安装VirtualBox、Vagrant和Ansible,然后在根目录中运行vagrant up即可。将为您构建并启动一个专门为该包的开发而设计的虚拟机。

在贡献时请考虑以下指南

  • 请遵守项目的代码风格,它基本上是PSR-2,但有一些差异。
    1. 当NOT运算符紧邻括号时,应在其周围使用单个空格。例如:if ( ! is_null(...)) {
    2. 接口不应以Interface结尾,特质不应以Trait结尾。
  • 所有方法和类都必须包含docblocks。
  • 确保您提交的测试至少有100%的覆盖率。
  • 当计划提交一个添加新功能的pull-request时,可能明智的做法是提交一个提案以确保与项目的目标兼容。

维护者

此包由Mitchell van WijngaardenShawn McCool维护,他们是Big Name的成员。

许可证

此包根据MIT许可证授权。