GoWind 开源生态GoWind 开源生态
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
首页
框架
GoWind Admin
GoWind CMS
GoWind IM
GoWind UBA
GoWind IoT
GoWind Toolkit
GoWind Quant
GitHub
  • GoWind Toolkit

    • GoWind Toolkit 介绍
  • 代码生成

    • 后端代码生成
    • 前端代码生成

后端代码生成

GoWind Toolkit 后端代码生成器可以从数据库 Schema 一键生成完整的 Go-Kratos 微服务代码,包括 Protobuf 定义、ORM 模型、数据访问层、业务逻辑层、Wire 依赖注入等全套分层代码。

整体流程

后端代码生成全程只需要 4 步,单体、微服务项目全部通用:

  1. 初始化项目:一键生成企业级标准微服务架构
  2. 绑定数据库:直连数据库或导入 SQL,快速导入表结构
  3. 配置数据表:按需选择分包模式,过滤无用表
  4. 一键生成:自动生成全套分层后端业务代码

第一步:新建后端项目

新建后端项目

操作入口

打开 GoWind Toolkit 桌面客户端,首页右上角点击 【新建后端项目】,即可调出创建窗口。

配置项说明

配置项作用填写建议
父目录项目存放的电脑文件夹纯英文路径,不要中文、空格、特殊符号
项目名称本地项目文件夹名字短横线命名,示例:go-wind-demo
Go 模块名称go.mod 依赖引用地址企业项目填仓库地址,个人项目同步项目名即可
模板仓库自定义项目初始化模板默认留空,使用官方模板;团队可配置私有模板
分支模板仓库指定分支默认留空,自动拉取主分支

创建步骤

  1. 选择一个纯英文空白文件夹
  2. 填写项目名称与 Go 模块名
  3. 模板仓库、分支保持默认
  4. 点击确定,工具自动初始化完整项目架构

生成的项目目录

go-wind-demo/
├── api/          # Proto 协议、gRPC 接口、请求响应结构体
├── cmd/          # 所有服务启动入口
├── internal/     # 核心私有业务代码
│   ├── data/     # 数据库数据访问层
│   ├── server/   # 路由、中间件、服务注册
│   └── service/  # 接口实现层
├── go.mod        # 依赖管理文件
└── go.sum        # 依赖校验文件

CLI 方式

也可以通过 CLI 创建项目:

gow new myproject
cd myproject && go mod tidy

第二步:连接数据库 & 导入表结构

数据库配置

导入模式

工具支持三种导入方式:

模式说明推荐场景
数据库直连直接连接 MySQL/PostgreSQL 等日常开发(推荐)
SQL 文件导入导入 .sql 文件离线环境
手动编写 SQL在线编辑器中编写 DDL快速验证

数据库连接

切换至 【数据库导入】 页面,填入数据库连接信息:

user:password@tcp(127.0.0.1:3306)/db_name?charset=utf8mb4&parseTime=True&loc=Local

支持以下数据库:

  • MySQL (推荐)
  • PostgreSQL
  • SQLite
  • Oracle

导入步骤

  1. 填写连接信息后,点击 【测试连接】,确认数据库连通
  2. 连接成功后,点击 【导入表结构】
  3. 工具自动加载库内所有数据表,并可视化展示

CLI 方式

# 交互式
gow generate

# 完整命令行
gow generate --dsn "mysql://user:pass@tcp(localhost:3306)/dbname" --service user

第三步:数据表分包配置

表配置

三种分包模式

模式说明推荐场景
按表独立包每张表一个独立 Proto 包小型单体、个人开发
按服务分包按业务域拆分服务,解耦性强企业微服务(推荐)
自定义包名自由指定包路径接入存量项目

精细化配置

  1. 给不同的数据表,划分对应的业务服务
  2. 取消勾选日志表、中间表、临时表,避免生成多余代码
  3. 支持单独修改表模型名、包名、注释

第四步:一键批量生成代码

生成代码

生成参数

参数说明
服务类型同时勾选 gRPC + BFF,兼顾内部 RPC 和外部 HTTP
ORM 框架Ent(推荐,类型安全)或 GORM
BFF 服务名自定义网关服务名,如 admin、user、order
生成预览核对数据表、服务数量,确认生成范围

生成内容

点击 【开始生成代码】,工具自动一次性生成全套代码:

  • Proto 协议:gRPC 请求响应结构体
  • ORM 模型:Ent 实体模型、数据库映射结构
  • Data 层:DAO 数据库操作代码
  • Biz 层:完整 CRUD 业务代码
  • Service 层:接口实现、路由与服务注册代码
  • Wire:依赖注入代码

项目校验

生成完成后,在项目根目录执行:

go mod tidy

无报错即代表项目可用。

CLI 一键命令

# 生成指定 ORM 和表
gow generate --dsn "mysql://..." \
  --service user --orm ent --servers grpc --tables users,roles

# 仅生成 proto 文件
gow generate --dsn "postgres://..." --service admin --proto-only

# 生成 REST 服务(代理自 gRPC 服务)
gow generate --dsn "mysql://..." --service user-admin \
  --servers rest --source-module user --skip-orm

CLI 常用命令速查

命令说明
gow new <name>创建新项目
gow add service <name> -s grpc添加 gRPC 服务
gow add service <name> -s rest添加 REST 服务
gow add service <name> -s rest -s grpc同时支持两种
gow generate交互式代码生成
gow ent [service]生成 Ent 代码
gow wire [service]生成 Wire 代码
gow api生成 Proto & API
gow run [service]运行服务
gow extract <src> <dst> -o <entities>提取模块到其他服务
gow version查看版本

微服务演进(模块提取)

当业务增长时,可以使用 gow extract 从一个服务中提取模块到新服务:

# 从 admin 服务提取 role 模块到 user 服务
gow extract admin user -o role

# 提取多个实体
gow extract admin user -o role,permission

# 手动指定 ORM 类型
gow extract admin user -o role --orm gorm

# 保留源文件(默认删除)
gow extract admin user -o role --keep-source

目标服务不存在时会自动创建,ORM 类型自动侦测。

常见问题

问题解决方案
初始化失败项目路径不能包含中文、空格与特殊符号
数据库连接失败检查端口、账号密码、数据库外网访问权限
依赖报错生成后务必执行 go mod tidy
冗余代码太多配置阶段提前过滤日志表、中间表等无用表

相关文档:

  • GoWind Toolkit 介绍
  • 前端代码生成
Edit this page
Last Updated:: 6/5/26, 12:24 PM
Contributors: Bobo
Next
前端代码生成