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

5.3 KiB
Raw Blame History

菜单数据恢复指南

作者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目录

cd /path/to/pangu-user-platform/sql

步骤2执行导入脚本

./import_menu.sh

步骤3按提示确认

此操作将清空并重新导入菜单数据,是否继续?(y/n): y

步骤4查看导入结果

脚本会自动显示菜单统计信息和顶级菜单列表。

2.3 方法二手动导入SQL

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 数据库验证

-- 统计菜单总数
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 数据备份

重要:执行导入前,建议备份当前菜单数据:

-- 备份菜单表
CREATE TABLE sys_menu_backup_20260131 AS SELECT * FROM sys_menu;

4.2 权限影响

导入菜单后,需要检查角色权限配置:

-- 查看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:检查数据库用户权限,确保有DELETEINSERT权限。

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