pangu-user-platform/docs/07-运维文档/菜单数据恢复指南.md

229 lines
5.4 KiB
Markdown
Raw Normal View History

feat: 创建完整菜单数据恢复方案 ## 问题描述 用户反馈:菜单栏缺少RuoYi默认的系统管理菜单(用户管理、角色管理、菜单管理等),只显示盘古业务菜单 ## 问题分析 初始化数据库时,只导入了盘古业务菜单(pangu_menu.sql),缺少RuoYi的系统管理、系统监控、系统工具菜单 ## 解决方案 ### 1. 创建完整菜单SQL文件 ``` sql/sys_menu_complete.sql (196行, 118条菜单) ├─ RuoYi系统菜单: 72条 (menu_id 1-1999) │ ├─ 系统管理 (用户、角色、菜单、部门、岗位、字典、参数、通知、日志) │ ├─ 系统监控 (在线用户、定时任务、数据监控、服务监控、缓存监控) │ └─ 系统工具 (表单构建、代码生成、系统接口) └─ 盘古业务菜单: 46条 (menu_id >= 2000) └─ 盘古管理 (学校、会员、学生、应用、基础数据) ``` ### 2. 创建自动导入脚本 ```bash sql/import_menu.sh ├─ 数据库连接配置 ├─ SQL文件路径检查 ├─ 用户确认提示 ├─ 菜单数据导入 └─ 导入结果统计 ``` **功能特性**: - 自动检查SQL文件存在性 - 导入前用户确认 - 导入后自动统计菜单数量 - 显示顶级菜单列表 - 错误处理和友好提示 ### 3. 创建运维文档 ``` docs/07-运维文档/菜单数据恢复指南.md ├─ 问题说明 ├─ 解决方案(3种导入方法) ├─ 验证步骤(数据库+前端) ├─ 注意事项(备份、权限、顺序) ├─ 常见问题Q&A └─ 相关文件索引 ``` ## 使用方法 ### 方法一:自动导入脚本(推荐) ```bash cd sql ./import_menu.sh ``` ### 方法二:手动导入SQL ```bash mysql -h127.0.0.1 -P3306 -uroot -p123456 pangu_user_platform < sql/sys_menu_complete.sql ``` ### 方法三:数据库客户端 使用Navicat/DataGrip执行sql/sys_menu_complete.sql ## 验证结果 ### 数据库验证 ```sql SELECT COUNT(*) FROM sys_menu; -- 预期:118条 SELECT CASE WHEN menu_id < 2000 THEN 'RuoYi系统菜单' ELSE '盘古业务菜单' END AS type, COUNT(*) AS count FROM sys_menu GROUP BY CASE WHEN menu_id < 2000 THEN 'RuoYi系统菜单' ELSE '盘古业务菜单' END; -- 预期:RuoYi 72条, 盘古 46条 ``` ### 前端验证 刷新页面后,菜单栏应显示: - ✅ 盘古管理 (order_num 0 - 最前面) - ✅ 系统管理 (order_num 1) - ✅ 系统监控 (order_num 2) - ✅ 系统工具 (order_num 3) - ✅ 若依官网 (order_num 4) ## 文件清单 - sql/sys_menu_complete.sql - 完整菜单SQL - sql/import_menu.sh - 自动导入脚本 - docs/07-运维文档/菜单数据恢复指南.md - 运维文档 --- 作者:湖北新华业务中台研发团队
2026-02-01 13:18:36 +08:00
# 菜单数据恢复指南
> **作者**:湖北新华业务中台研发团队
> **日期**2026-01-31
> **用途**恢复完整的系统菜单RuoYi系统管理菜单 + 盘古业务菜单)
---
## 一、问题说明
### 1.1 问题现象
系统菜单栏缺少RuoYi默认的系统管理菜单只显示盘古业务菜单导致无法访问
- **系统管理**:用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、通知公告、日志管理
- **系统监控**:在线用户、定时任务、数据监控、服务监控、缓存监控
- **系统工具**:表单构建、代码生成、系统接口
### 1.2 原因分析
初始化数据库时,只导入了盘古业务菜单(`pangu_menu.sql`缺少RuoYi系统菜单数据。
---
## 二、解决方案
### 2.1 完整菜单SQL文件
已创建完整菜单SQL文件**`sql/sys_menu_complete.sql`**
包含内容:
- **RuoYi系统菜单**72条menu_id 1-1999
- **盘古业务菜单**46条menu_id 2000-2070
- **合计**118条菜单
### 2.2 方法一:使用导入脚本(推荐)
#### 步骤1进入SQL目录
```bash
cd /path/to/pangu-user-platform/sql
```
#### 步骤2执行导入脚本
```bash
./import_menu.sh
```
#### 步骤3按提示确认
```
此操作将清空并重新导入菜单数据,是否继续?(y/n): y
```
#### 步骤4查看导入结果
脚本会自动显示菜单统计信息和顶级菜单列表。
### 2.3 方法二手动导入SQL
```bash
mysql -h127.0.0.1 -P3306 -uroot -p123456 pangu_user_platform < sql/sys_menu_complete.sql
```
### 2.4 方法三:使用数据库客户端
1. 使用Navicat/DataGrip/DBeaver等工具连接数据库
2. 打开`sql/sys_menu_complete.sql`文件
3. 执行SQL脚本
---
## 三、验证结果
### 3.1 数据库验证
```sql
-- 统计菜单总数
SELECT COUNT(*) AS total FROM sys_menu;
-- 预期结果118条
-- 统计各类型菜单
SELECT
CASE
WHEN menu_id < 2000 THEN 'RuoYi系统菜单'
ELSE '盘古业务菜单'
END AS menu_type,
COUNT(*) AS count
FROM sys_menu
GROUP BY CASE WHEN menu_id < 2000 THEN 'RuoYi系统菜单' ELSE '盘古业务菜单' END;
-- 预期结果:
-- RuoYi系统菜单 72
-- 盘古业务菜单 46
-- 查看顶级菜单
SELECT menu_id, menu_name, order_num, visible, status
FROM sys_menu
WHERE parent_id = 0
ORDER BY order_num;
-- 预期结果:
-- 1 系统管理 1 0 0
-- 2 系统监控 2 0 0
-- 3 系统工具 3 0 0
-- 4 若依官网 4 0 0
-- 2000 盘古管理 0 0 0
```
### 3.2 前端页面验证
刷新浏览器,菜单栏应该显示:
```
📋 盘古管理 (menu_id 2000order_num 0 - 最前面)
├─ 学校管理
├─ 会员管理
├─ 学生管理
├─ 应用管理
└─ 基础数据
├─ 年级管理
├─ 班级管理
├─ 学科管理
└─ 区域管理
⚙️ 系统管理 (menu_id 1order_num 1)
├─ 用户管理
├─ 角色管理
├─ 菜单管理
├─ 部门管理
├─ 岗位管理
├─ 字典管理
├─ 参数设置
├─ 通知公告
└─ 日志管理
📊 系统监控 (menu_id 2order_num 2)
├─ 在线用户
├─ 定时任务
├─ 数据监控
├─ 服务监控
└─ 缓存监控
🔧 系统工具 (menu_id 3order_num 3)
├─ 表单构建
├─ 代码生成
└─ 系统接口
🌐 若依官网 (menu_id 4order_num 4)
```
---
## 四、注意事项
### 4.1 数据备份
**重要**:执行导入前,建议备份当前菜单数据:
```sql
-- 备份菜单表
CREATE TABLE sys_menu_backup_20260131 AS SELECT * FROM sys_menu;
```
### 4.2 权限影响
导入菜单后,需要检查角色权限配置:
```sql
-- 查看admin角色的菜单权限
SELECT COUNT(*) FROM sys_role_menu WHERE role_id = 1;
```
如果权限不足,需要在**系统管理 > 角色管理**中重新分配菜单权限。
### 4.3 菜单顺序
- **盘古管理**`order_num = 0`(显示在最前面)
- **系统管理**`order_num = 1`
- **系统监控**`order_num = 2`
- **系统工具**`order_num = 3`
- **若依官网**`order_num = 4`
如需调整顺序,可在**系统管理 > 菜单管理**中修改`显示排序`字段。
### 4.4 菜单ID范围
为避免ID冲突请遵守以下规则
- **RuoYi系统菜单**menu_id 1-1999
- **盘古业务菜单**menu_id >= 2000
新增业务菜单时menu_id从2100开始。
---
## 五、常见问题
### Q1导入后菜单显示不全
**A**:清除浏览器缓存或使用无痕模式重新登录。
### Q2导入失败提示"Access denied"
**A**:检查数据库用户权限,确保有`DELETE`和`INSERT`权限。
### Q3菜单顺序不对
**A**:在**系统管理 > 菜单管理**中调整`显示排序`字段。
### Q4部分菜单无法访问
**A**:在**系统管理 > 角色管理**中,为对应角色分配菜单权限。
---
## 六、相关文件
| 文件路径 | 说明 |
|---------|------|
| `sql/sys_menu_complete.sql` | 完整菜单SQLRuoYi + 盘古) |
| `sql/import_menu.sh` | 自动导入脚本 |
| `sql/pangu_menu.sql` | 盘古业务菜单(仅业务部分) |
| `sql/ry_20250522.sql` | RuoYi原始完整SQL |
---
## 七、技术支持
如有问题,请联系:**湖北新华业务中台研发团队**
---
*最后更新2026-01-31*