Files
X-Agents/teams/web/ddl-edit.md
2026-03-11 14:26:47 +08:00

1.5 KiB
Raw Blame History

后端需求 - DDL 编辑功能

问题描述

前端 Database 页面的 Table Mapping 功能已从"字段映射"改为"DDL 编辑"模式。后端需要支持保存和读取 DDL 数据。

需求

1. 保存 DDL

前端保存时发送 ddl 字段而非 fields 字段。

请求结构:

{
  "name": "数据库名",
  "sub_tables": [
    {
      "parent_table": "users",
      "sub_table_name": "用户表",
      "sub_table_comment": "用户表",
      "ddl": "CREATE TABLE users (...)"
    }
  ]
}

2. 后端处理

  • CreateSubTableRequest 已有 DDL string 字段(已添加)
  • UpdateSubTableRequest 已有 DDL string 字段(已添加)
  • UpdateDatabaseRequest 已有 SubTables []CreateSubTableRequest 字段(已添加)

3. Service 层修改

sub_table_service.go

  1. Create 函数 - 添加 DDL 字段赋值:
info := &model.SubTableInfo{
    // ... 现有字段
    DDL: req.DDL,
}
  1. Update 函数 - 添加 DDL 更新逻辑:
// 更新 DDL
info.DDL = req.DDL

database_service.go 或 handler

Update 方法中处理 SubTables 字段:

  • 当前端传入 sub_tables 时,需要创建或更新对应的子表记录(包括 DDL
  • 遍历 sub_tables,调用 SubTableService.CreateSubTableService.Update

影响范围

  • server/internal/service/sub_table_service.go - Create/Update 方法
  • server/internal/service/database_service.go 或 handler - Update 方法处理 SubTables

状态

  • 前端修改完成
  • 后端修改已完成