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

218 lines
4.8 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.

# 应用管理模块 - 数据库导入说明
## 📋 SQL 文件清单
| 文件名 | 说明 | 执行顺序 |
|--------|------|---------|
| `pangu_tables.sql` | 表结构pg_application, pg_api_dict, pg_app_api | ① 必须 |
| `pangu_menu.sql` | 菜单数据(应用管理菜单及权限) | ② 必须 |
| `open_api_dict_data.sql` | API 字典初始数据(学生列表接口) | ③ 必须 |
---
## 🚀 方式一:自动检查并导入(推荐)
使用提供的自动化脚本,会自动检查表和数据是否存在,缺失则自动导入。
### 步骤:
```bash
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. 导入表结构
```bash
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. 导入菜单数据
```bash
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 字典数据
```bash
mysql -h 8.148.25.55 -P 3306 -u root -p pguser-db < open_api_dict_data.sql
```
**数据说明**
- api_code: OPEN_STUDENT_LIST - 学生列表查询接口
---
## ✅ 验证导入
### 1. 检查表结构
```sql
-- 查看表是否存在
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. 检查菜单数据
```sql
-- 查看应用管理菜单
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 字典数据
```sql
-- 查看 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"
**原因**:菜单数据已存在
**解决**:可以忽略,或者先删除旧菜单再导入
```sql
-- 删除旧菜单(谨慎操作)
DELETE FROM sys_menu WHERE menu_id >= 2300 AND menu_id < 2400;
```
### Q3: 如何重新导入所有数据?
```bash
# 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. 重启后端服务
```bash
cd /Users/felix/pgWorkSpace/pangu-user-platform/backend
./build.sh -r
```
### 2. 刷新前端页面
打开浏览器访问http://localhost:80
### 3. 检查菜单是否显示
登录后台 → 左侧菜单 → 应该能看到"应用管理"菜单
### 4. 创建测试应用
进入【应用管理】→ 点击【新增】→ 填写应用信息 → 保存
---
## 🔗 相关文档
- [技术方案](/docs/2-技术方案.md)
- [接口文档](/docs/3-接口文档.md)
- [运维文档](/docs/4-运维文档.md)
- [PHP 客户端使用指南](/test/README.md)
---
## 📞 技术支持
如导入过程中遇到问题,请检查:
1. 数据库连接配置是否正确
2. 数据库用户是否有足够权限
3. SQL 文件是否完整
4. 后端日志:`/tmp/pangu-admin.log`
**pangu**
2026-02-04