pangu-user-platform/backend/pangu-modules/pangu-business/sql/README_导入说明.md

4.8 KiB
Raw Permalink Blame History

应用管理模块 - 数据库导入说明

📋 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. 创建测试应用

进入【应用管理】→ 点击【新增】→ 填写应用信息 → 保存


🔗 相关文档


📞 技术支持

如导入过程中遇到问题,请检查:

  1. 数据库连接配置是否正确
  2. 数据库用户是否有足够权限
  3. SQL 文件是否完整
  4. 后端日志:/tmp/pangu-admin.log

pangu
2026-02-04