mirko-pagliai/database-backup

此包已被废弃,不再维护。作者建议使用mirko-pagliai/cakephp-database-backup包。

CakePHP 数据库备份插件

安装: 723

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 2

分支: 1

开放问题: 0

类型:cakephp-plugin

1.1.4 2016-10-06 06:54 UTC

This package is not auto-updated.

Last update: 2018-02-05 11:03:22 UTC


README

自2016年11月起,此仓库已被废弃
请参阅:cakephp-database-backup

DatabaseBackup

Build Status

DatabaseBackup 是一个用于导出、导入和管理数据库备份的 CakePHP 插件。

安装

您可以通过 composer 安装此插件。

$ composer require --prefer-dist mirko-pagliai/database-backup

然后,编辑 APP/config/bootstrap.php 以加载插件。

Plugin::load('DatabaseBackup', ['bootstrap' => TRUE]);

默认情况下,插件使用 APP/backups 目录来保存备份文件。
因此,您需要创建该目录并使其可写。

$ mkdir backups/ && chmod 775 backups/

您可以通过定义 BACKUPS 常量来更改此目录,直到插件加载。例如

define('BACKUPS', 'alternative'.DS.'directory'.DS.'for'.DS.'backups);
Plugin::load('DatabaseBackup', ['bootstrap' => TRUE]);

用法

DatabaseBackup 提供了三个类

  • Backup 允许您对数据库备份进行各种操作;
  • BackupExport 允许您导出数据库备份;
  • BackupImport 允许您导入数据库备份。

此外,它还提供了 BackupShell,允许您从 shell 执行各种操作。

导出备份

您可以使用 BackupExport 实用程序导出备份。
类构造函数接受您想要使用的连接名称。

此实用程序提供了以下公共方法

  • compression() 设置压缩类型。支持的值有 gzipbzip2none。默认情况下,不使用压缩;
  • connection() 设置数据库连接。连接必须在 APP/config/app.php 中定义。默认情况下,将使用 default 连接;
  • filename() 设置导出数据库的文件名。使用此方法,将自动检测压缩类型。此方法接受一些模式({$DATABASE}{$DATETIME}{$HOSTNAME}{$TIMESTAMP});
  • rotate() 设置您想要保留的备份数量。因此,它将删除所有较旧的备份。

最后,export() 方法导出数据库。

请参阅 wiki 以查看示例。

导入备份

您可以使用 BackupImport 实用程序导入备份。
类构造函数接受您想要使用的连接名称。

此实用程序提供了以下公共方法

  • connection() 设置数据库连接。连接必须在 APP/config/app.php 中定义。默认情况下,将使用 default 连接;
  • filename() 设置导入数据库要使用的文件名。

最后,import() 方法导入数据库。

请参阅 wiki 以查看示例。

使用 shell 管理备份

DatabaseBackup 提供了 BackupShell,允许您从 shell 执行各种操作。
简单,要查看所有可用命令

$ bin/cake backup -h

要查看命令的所有可用选项

$ bin/cake backup export -h

示例

$ bin/cake backup export -c gzip -r 10

这将使用 gzip 压缩和默认文件名导出备份文件。此外,仅保留10个备份文件,最旧的将被删除。

$ bin/cake backup import backups/my_backup.sql

这将导入备份文件 backups/my_backup.sql

将备份导出为cron作业

您可以通过运行插件shell作为cron作业来安排备份。请参阅CakePHP食谱

示例。
备份从周一到周五每天凌晨3点运行。备份将使用gzip压缩,并且仅保留最后10个备份。

0 3 * * 1-5 cd /var/www/mysite && bin/cake backup export -c gzip -r 10 # Backup for mysite

版本控制

为了提高透明度和对我们发布周期的洞察,以及保持向后兼容性,DatabaseBackup将根据语义化版本控制指南进行维护。