mirko-pagliai / database-backup
Requires
- php: >=5.5.9
- cakephp/cakephp: >=3.2.0 <4.0
Requires (Dev)
README
自2016年11月起,此仓库已被废弃。
请参阅:cakephp-database-backup。
DatabaseBackup
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()
设置压缩类型。支持的值有gzip
、bzip2
和none
。默认情况下,不使用压缩;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将根据语义化版本控制指南进行维护。