floor12 / yii2-module-backup
Yii2 备份模块
Requires
- ext-zlib: *
- floor12/yii2-notification: ~1.3.1
- yii2mod/yii2-enum: ^1.7
- yiisoft/yii2: ~2.0.19
Requires (Dev)
- phpunit/phpunit: ~7.5.17
This package is auto-updated.
Last update: 2024-09-15 11:18:18 UTC
README
此文件可用俄语。
此模块有助于创建和恢复存储在磁盘上的数据库和文件的备份。它具有Web界面、控制台命令和用于远程控制的REST-API。它还支持I/O优先级设置,并提供灵活的配置选项。为了独立于应用程序数据库工作,该模块在其备份文件夹中使用自己的sqlite数据库。
可以为MySQL和[PostgreSQL] (https://postgresql.ac.cn/)创建和恢复数据库备份。为此,您必须在系统上安装您数据库类型的控制台客户端。经过一系列实验,很明显,使用其原生的客户端来创建和恢复数据库是最好的。
i18n
现在,此模块支持英语和俄语。
安装
要将此模块添加到您的应用程序,只需运行
$ composer require floor12/yii2-module-backup
或将此添加到您的composer.json文件的require部分。
"floor12/yii2-module-backup": "dev-master"
然后,在应用程序配置的modules部分包含最小模块配置
'modules' => [ 'backup' => [ 'class' => 'floor12\backup\Module', 'backupFolder' => '/mnt/raid10/backups', 'administratorRoleName' => '@', 'configs' => [ 'mysql_db' => [ 'type' => BackupType::DB, 'title' => 'Mysql Database', 'connection' => 'db', // component from app config, usually 'db' 'limit' => 0 ], 'postgres_db' => [ 'type' => BackupType::DB, 'title' => 'PostgresQL database', 'connection' => 'example_connection_name', // component from app config, usually 'db' 'io' => IOPriority::REALTIME, 'limit' => 0 ], 'user_files_backup' => [ 'type' => BackupType::FILES, 'title' => 'User uploaded files', 'path' => '@app/user_files', 'io' => IOPriority::IDLE, 'limit' => 0 ] ] ] ] ...
以下参数可以进行设置
administratorRoleName- 访问Web控制器的角色backupFolder- 存储备份的路径或别名(默认为@app/backups)chmod- 如果此参数有值,则新备份文件将在创建后更改模式authTokens- 用于模块REST-API的认证令牌数组adminLayout- 它将默认的main布局更改为所需布局(如果您的管理面板有不同的基础布局)
主要和必需的参数是configs - 它是一个关联数组,包含您的备份配置(文件夹和数据库)。每个备份项必须设置以下元素
- 备份标识符作为数组键,只包含字母和数字,没有空格;
type- 备份类型:磁盘或数据库;title- 可在管理界面中显示的备份项目人类可读标题;limit- 在删除之前保留多少个备份副本(0- 永不删除旧副本);io- 输入/输出硬盘优先级,使用floor12\backup\models\IOPriority常量来保持其配置。默认值是IOPriority::IDLE;connection- 在数据库备份的情况下,在Yii2配置中的连接名称;path- 在磁盘备份的情况下,存储备份文件的路径;
使用方法
WEB界面
此模块具有用于处理备份的Web控制器。转到backup/admin或backup/admin/index以创建、删除、恢复和下载备份。
控制台界面
要列出所有现有备份,请运行
$ ./yii backup/console/index
要创建配置,请运行
$ ./yii backup/console/create <backup_config_id>
backup_config_id是模块配置中的备份项目标识符。
要恢复配置,请运行
$ ./yii backup/console/restore <backup_id>
backup_id是存储在sqlite数据库中的备份的标识符
REST-api
默认情况下,REST控制器位于路由/backup/api。要获取对它的访问权限,请将头Backup-Auth-Token添加到请求中,该请求包含应用程序配置模块部分(参数authTokens)中存储的一个令牌;
获取备份列表
GET /backup/api/index
这适用于从一些仪表板中远程检查几个项目的备份。
响应示例
[
{
"id": 8,
"date": "2019-11-11 07:02:23",
"status": 1,
"type": 1,
"config_id": "main_storage",
"config_name": "TMP folder",
"filename": "main_storage_2019-11-11_07-02-23.zip",
"size": 4183
},
{
"id": 7,
"date": "2019-11-11 06:56:36",
"status": 1,
"type": 0,
"config_id": "main_db",
"config_name": "Main database",
"filename": "main_db_2019-11-11_06-56-36.gz",
"size": 753
},
]
创建新的备份
POST /backup/api/backup?config_id=<backup_config_id>
成功响应示例
{"result":"success"}
从备份中恢复
POST /backup/api/restore?id=<backup_id>
成功响应示例
{"result":"success"}
删除备份
DELETE /backup/api/delete?id=<backup_id>
成功响应示例
{"result":"success"}
获取备份文件
GET /backup/api/get?id=<backup_id>
此请求将返回具有请求ID的备份存档。