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

229 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 菜单数据恢复指南
> **作者**pangu
> **日期**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 |
---
## 七、技术支持
如有问题,请联系:**pangu**
---
*最后更新2026-01-31*