Files
aiagent/数据库迁移说明-模板市场.md
2026-01-19 00:09:36 +08:00

4.5 KiB
Raw Permalink Blame History

数据库迁移说明 - 模板市场功能

📋 概述

模板市场功能需要创建3个新的数据库表

  1. workflow_templates - 工作流模板表
  2. template_ratings - 模板评分表
  3. template_favorites - 模板收藏表

🔧 迁移方式

方式一执行SQL脚本推荐

SQL脚本位置: backend/create_template_market_tables.sql

执行命令:

# 使用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),重启服务后会自动创建表。

重启命令:

# Docker方式
docker-compose restart backend

# 或直接重启uvicorn进程

方式三通过Python脚本创建

from app.core.database import engine, Base
from app.models.workflow_template import WorkflowTemplate, TemplateRating, TemplateFavorite

# 创建表
Base.metadata.create_all(bind=engine)

验证表是否创建成功

方法一通过MySQL客户端查询

SHOW TABLES LIKE 'workflow_template%';
SHOW TABLES LIKE 'template_%';

应该看到:

  • workflow_templates
  • template_ratings
  • template_favorites

方法二通过API测试

# 登录获取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日