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

218 lines
4.8 KiB
Markdown
Raw Permalink Normal View History

# 应用管理模块 - 数据库导入说明
## 📋 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