第一次提交
This commit is contained in:
170
数据库迁移说明-模板市场.md
Normal file
170
数据库迁移说明-模板市场.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# 数据库迁移说明 - 模板市场功能
|
||||
|
||||
## 📋 概述
|
||||
|
||||
模板市场功能需要创建3个新的数据库表:
|
||||
1. `workflow_templates` - 工作流模板表
|
||||
2. `template_ratings` - 模板评分表
|
||||
3. `template_favorites` - 模板收藏表
|
||||
|
||||
## 🔧 迁移方式
|
||||
|
||||
### 方式一:执行SQL脚本(推荐)
|
||||
|
||||
**SQL脚本位置**: `backend/create_template_market_tables.sql`
|
||||
|
||||
**执行命令**:
|
||||
```bash
|
||||
# 使用MySQL客户端
|
||||
mysql -h [数据库地址] -u [用户名] -p [数据库名] < backend/create_template_market_tables.sql
|
||||
|
||||
# 例如(根据您的配置):
|
||||
mysql -h gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com -P 24936 -u root -p agent_db < backend/create_template_market_tables.sql
|
||||
```
|
||||
|
||||
### 方式二:重启后端服务(自动创建)
|
||||
|
||||
如果后端服务配置了自动创建表(使用 `Base.metadata.create_all`),重启服务后会自动创建表。
|
||||
|
||||
**重启命令**:
|
||||
```bash
|
||||
# Docker方式
|
||||
docker-compose restart backend
|
||||
|
||||
# 或直接重启uvicorn进程
|
||||
```
|
||||
|
||||
### 方式三:通过Python脚本创建
|
||||
|
||||
```python
|
||||
from app.core.database import engine, Base
|
||||
from app.models.workflow_template import WorkflowTemplate, TemplateRating, TemplateFavorite
|
||||
|
||||
# 创建表
|
||||
Base.metadata.create_all(bind=engine)
|
||||
```
|
||||
|
||||
## ✅ 验证表是否创建成功
|
||||
|
||||
### 方法一:通过MySQL客户端查询
|
||||
|
||||
```sql
|
||||
SHOW TABLES LIKE 'workflow_template%';
|
||||
SHOW TABLES LIKE 'template_%';
|
||||
```
|
||||
|
||||
应该看到:
|
||||
- `workflow_templates`
|
||||
- `template_ratings`
|
||||
- `template_favorites`
|
||||
|
||||
### 方法二:通过API测试
|
||||
|
||||
```bash
|
||||
# 登录获取token
|
||||
curl -X POST http://101.43.95.130:8037/api/v1/auth/login \
|
||||
-d "username=test_user&password=test_password123"
|
||||
|
||||
# 测试模板市场API
|
||||
curl -X GET http://101.43.95.130:8037/api/v1/template-market \
|
||||
-H "Authorization: Bearer <token>"
|
||||
```
|
||||
|
||||
如果返回200状态码和空数组 `[]`,说明表已创建成功。
|
||||
|
||||
## 📊 表结构说明
|
||||
|
||||
### workflow_templates(工作流模板表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | CHAR(36) | 模板ID(主键) |
|
||||
| name | VARCHAR(100) | 模板名称 |
|
||||
| description | TEXT | 模板描述 |
|
||||
| category | VARCHAR(50) | 分类 |
|
||||
| tags | JSON | 标签列表 |
|
||||
| nodes | JSON | 节点配置 |
|
||||
| edges | JSON | 边配置 |
|
||||
| thumbnail | VARCHAR(500) | 缩略图URL |
|
||||
| is_public | BOOLEAN | 是否公开 |
|
||||
| is_featured | BOOLEAN | 是否精选 |
|
||||
| view_count | INT | 查看次数 |
|
||||
| use_count | INT | 使用次数 |
|
||||
| rating_count | INT | 评分次数 |
|
||||
| rating_avg | FLOAT | 平均评分 |
|
||||
| user_id | CHAR(36) | 创建者ID(外键) |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
### template_ratings(模板评分表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | CHAR(36) | 评分ID(主键) |
|
||||
| template_id | CHAR(36) | 模板ID(外键) |
|
||||
| user_id | CHAR(36) | 用户ID(外键) |
|
||||
| rating | INT | 评分(1-5) |
|
||||
| comment | TEXT | 评论 |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
| updated_at | DATETIME | 更新时间 |
|
||||
|
||||
**唯一约束**: `(template_id, user_id)` - 每个用户对每个模板只能评分一次
|
||||
|
||||
### template_favorites(模板收藏表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | CHAR(36) | 收藏ID(主键) |
|
||||
| template_id | CHAR(36) | 模板ID(外键) |
|
||||
| user_id | CHAR(36) | 用户ID(外键) |
|
||||
| created_at | DATETIME | 创建时间 |
|
||||
|
||||
**唯一约束**: `(template_id, user_id)` - 每个用户对每个模板只能收藏一次
|
||||
|
||||
## 🐛 常见问题
|
||||
|
||||
### 问题1: 表创建失败 - 外键约束错误
|
||||
|
||||
**原因**: `users` 表不存在或结构不匹配
|
||||
|
||||
**解决**: 确保 `users` 表已存在且 `id` 字段类型为 `CHAR(36)`
|
||||
|
||||
### 问题2: JSON字段不支持
|
||||
|
||||
**原因**: MySQL版本过低(需要5.7+)
|
||||
|
||||
**解决**: 升级MySQL版本或使用 `TEXT` 类型替代 `JSON`
|
||||
|
||||
### 问题3: 表已存在错误
|
||||
|
||||
**原因**: 表已经创建过
|
||||
|
||||
**解决**: 使用 `CREATE TABLE IF NOT EXISTS` 可以安全地重复执行
|
||||
|
||||
## 📝 迁移检查清单
|
||||
|
||||
- [ ] SQL脚本已创建
|
||||
- [ ] 执行SQL脚本或重启后端服务
|
||||
- [ ] 验证表是否创建成功
|
||||
- [ ] 测试模板市场API
|
||||
- [ ] 测试前端模板市场页面
|
||||
|
||||
## 🎯 迁移完成后
|
||||
|
||||
迁移完成后,您可以:
|
||||
|
||||
1. **使用模板市场功能**:
|
||||
- 分享工作流模板
|
||||
- 搜索和浏览模板
|
||||
- 收藏和评分模板
|
||||
- 使用模板创建工作流
|
||||
|
||||
2. **使用批量操作功能**(不依赖新表):
|
||||
- 批量执行工作流
|
||||
- 批量导出工作流
|
||||
- 批量删除工作流
|
||||
|
||||
---
|
||||
|
||||
**SQL脚本位置**: `backend/create_template_market_tables.sql`
|
||||
**最后更新**: 2024年1月17日
|
||||
Reference in New Issue
Block a user