4.8 KiB
4.8 KiB
应用管理模块 - 数据库导入说明
📋 SQL 文件清单
| 文件名 | 说明 | 执行顺序 |
|---|---|---|
pangu_tables.sql |
表结构(pg_application, pg_api_dict, pg_app_api) | ① 必须 |
pangu_menu.sql |
菜单数据(应用管理菜单及权限) | ② 必须 |
open_api_dict_data.sql |
API 字典初始数据(学生列表接口) | ③ 必须 |
🚀 方式一:自动检查并导入(推荐)
使用提供的自动化脚本,会自动检查表和数据是否存在,缺失则自动导入。
步骤:
cd /Users/felix/pgWorkSpace/pangu-user-platform/backend/pangu-modules/pangu-business/sql
# 基本用法(使用默认配置)
./check_and_import.sh -p your_password
# 指定完整配置
./check_and_import.sh -h 8.148.25.55 -P 3306 -d pguser-db -u root -p your_password
参数说明:
| 参数 | 说明 | 默认值 |
|---|---|---|
| -h, --host | 数据库主机 | 8.148.25.55 |
| -P, --port | 数据库端口 | 3306 |
| -d, --database | 数据库名称 | pguser-db |
| -u, --user | 数据库用户 | root |
| -p, --password | 数据库密码 | 无(必填) |
脚本功能:
✅ 自动检查数据库连接
✅ 检查表是否存在
✅ 检查菜单是否存在
✅ 检查 API 字典数据是否存在
✅ 缺失则自动导入
✅ 彩色输出,清晰直观
🔧 方式二:手动导入
如果需要手动导入,请按以下顺序执行:
1. 导入表结构
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < pangu_tables.sql
表结构说明:
pg_application- 第三方应用表(存储应用信息、AppCode、AppSecret)pg_api_dict- API 接口字典表(可授权的接口列表)pg_app_api- 应用 API 授权表(多对多关系)
2. 导入菜单数据
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < pangu_menu.sql
菜单说明:
- menu_id: 2300 - 应用管理(一级菜单)
- menu_id: 2301-2306 - 应用管理相关权限(查询、新增、修改、删除、重置密钥、接口授权)
3. 导入 API 字典数据
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < open_api_dict_data.sql
数据说明:
- api_code: OPEN_STUDENT_LIST - 学生列表查询接口
✅ 验证导入
1. 检查表结构
-- 查看表是否存在
SHOW TABLES LIKE 'pg_%';
-- 查看表结构
DESC pg_application;
DESC pg_api_dict;
DESC pg_app_api;
-- 查看表数据量
SELECT COUNT(*) FROM pg_application;
SELECT COUNT(*) FROM pg_api_dict;
SELECT COUNT(*) FROM pg_app_api;
2. 检查菜单数据
-- 查看应用管理菜单
SELECT menu_id, menu_name, perms, icon
FROM sys_menu
WHERE menu_id >= 2300 AND menu_id < 2400
ORDER BY menu_id;
-- 预期结果:
-- 2300 应用管理
-- 2301 应用查询
-- 2302 应用新增
-- 2303 应用修改
-- 2304 应用删除
-- 2305 重置密钥
-- 2306 接口授权
3. 检查 API 字典数据
-- 查看 API 字典
SELECT * FROM pg_api_dict;
-- 预期结果:
-- api_code: OPEN_STUDENT_LIST
-- api_name: 学生列表
-- api_path: /open/api/student/list
🔍 常见问题
Q1: 导入时报错 "Table already exists"
原因:表已存在
解决:这是正常的,说明表已经导入过了,可以忽略
Q2: 导入菜单时报错 "Duplicate entry"
原因:菜单数据已存在
解决:可以忽略,或者先删除旧菜单再导入
-- 删除旧菜单(谨慎操作)
DELETE FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;
Q3: 如何重新导入所有数据?
# 1. 删除表(会丢失所有应用数据)
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db -e "
DROP TABLE IF EXISTS pg_app_api;
DROP TABLE IF EXISTS pg_application;
DROP TABLE IF EXISTS pg_api_dict;
"
# 2. 删除菜单
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db -e "
DELETE FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;
"
# 3. 重新导入
./check_and_import.sh -p your_password
📝 导入后的操作
1. 重启后端服务
cd /Users/felix/pgWorkSpace/pangu-user-platform/backend
./build.sh -r
2. 刷新前端页面
打开浏览器访问:http://localhost:80
3. 检查菜单是否显示
登录后台 → 左侧菜单 → 应该能看到"应用管理"菜单
4. 创建测试应用
进入【应用管理】→ 点击【新增】→ 填写应用信息 → 保存
🔗 相关文档
📞 技术支持
如导入过程中遇到问题,请检查:
- 数据库连接配置是否正确
- 数据库用户是否有足够权限
- SQL 文件是否完整
- 后端日志:
/tmp/pangu-admin.log
pangu
2026-02-04