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的备份存档。