mccool/database-backup

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

一个框架无关的基于驱动程序的数据库备份包,包含 Laravel 扩展。

1.0.2 2014-11-03 11:46 UTC

This package is auto-updated.

Last update: 2022-02-01 12:27:24 UTC


README

此包已被弃用。此 备份管理器 已完全取代它。

数据库备份

一个框架无关的数据库备份包。

驱动程序: 目前该包支持 MySQL、gzip 和 Amazon S3。然而,它是模块化的,可以扩展以支持更多。

框架: 此包不需要框架,但提供了一个 Laravel 服务提供者和 Artisan 命令以方便使用。

注意:请注意,此包使用 mysqldump 进行 MySQL 备份。

示例

Laravel 用户可以运行以下命令来备份数据库、压缩它、上传到 s3 并删除本地备份文件

php artisan db:backup --s3-bucket=whatever --s3-path=/this/is/optional/ --cleanup --gzip

非 Laravel 用户可以参考下面的使用部分。

要求

  • 5.4(愿意接受降低到 5.3 的拉取请求)

安装

Laravel

  1. 添加到 composer.json

    "mccool/database-backup": "1.0.1"
  2. 安装依赖项

    composer update
  3. 安装配置文件

    php artisan config:publish mccool/database-backup
  4. 将服务提供者添加到 config/app.php

    'McCool\DatabaseBackup\ServiceProviders\LaravelServiceProvider',
  5. 将密钥/秘密添加到 app/config/packages/mccool/database-backup/aws.php 中的配置文件

原生 PHP

  1. 添加到 composer.json

    "mccool/database-backup": "dev-master"
  2. 安装依赖项

    composer update
  3. 确保您的应用程序需要 composer 自动加载器

    require '../vendor/autoload.php';

使用

Laravel

将数据库导出到 app/storage/dumps/databasename_timestamp.sql

php artisan db:backup

将数据库存储到 backups/databasename_timestamp.sql

php artisan db:backup --local-path=backups

压缩数据库。

php artisan db:backup --gzip

选择除默认数据库之外的数据库进行导出(名称在 Laravel 的 config/database.php 中配置)。

php artisan db:backup --database=otherdatabaseconnection

选择除默认文件名之外的特定文件名(默认为 'Y-m-d_H-i-s')。注意,不要包含 .sql 文件扩展名,我们将为您完成这项工作。

php artisan db:backup --filename=my_project_backup

将备份上传到 S3

php artisan db:backup --s3-bucket=whatever --s3-path=/this/is/optional/

完成时清理文件

php artisan db:backup --s3-bucket=whatever --s3-path=/this/is/optional/ --cleanup

原生 PHP

<?php

require '../vendor/autoload.php';

// dump the database to backup/test.sql
$shellProcessor = new McCool\DatabaseBackup\Processors\ShellProcessor(new Symfony\Component\Process\Process(''));
$dumper = new McCool\DatabaseBackup\Dumpers\MysqlDumper($shellProcessor, 'localhost', 3306, 'username', 'password', 'test_db', 'backup/test.sql');

$backup = new McCool\DatabaseBackup\BackupProcedure($dumper);
$backup->backup();

// dump the database to backup/test.sql and gzip it
$shellProcessor = new McCool\DatabaseBackup\Processors\ShellProcessor(new Symfony\Component\Process\Process(''));
$dumper   = new McCool\DatabaseBackup\Dumpers\MysqlDumper($shellProcessor, 'localhost', 3306, 'username', 'password', 'test_db', 'backup/test.sql');
$archiver = new McCool\DatabaseBackup\Archivers\GzipArchiver($shellProcessor);

$backup = new McCool\DatabaseBackup\BackupProcedure($dumper);
$backup->setArchiver($archiver);

$backup->backup();

// dump the database to backup/test.sql, gzip it, upload it to S3, and clean up after ourselves
$shellProcessor = new McCool\DatabaseBackup\Processors\ShellProcessor(new Symfony\Component\Process\Process(''));
$dumper   = new McCool\DatabaseBackup\Dumpers\MysqlDumper($shellProcessor, 'localhost', 3306, 'username', 'password', 'test_db', 'backup/test.sql');
$archiver = new McCool\DatabaseBackup\Archivers\GzipArchiver($shellProcessor);
$storer   = new McCool\DatabaseBackup\Storers\S3Storer($awsKey, $awsSecret, 'us-east-1', $bucket, $s3Path);

$backup = new McCool\DatabaseBackup\BackupProcedure($dumper);
$backup->setArchiver($archiver);
$backup->setStorer($storer);

$backup->backup();
$backup->cleanup();

许可

MIT