字
字节笔记本
2026年2月19日
gormt:MySQL 数据库转 Go 结构体工具
API中转
¥120
本文介绍 gormt,一个 MySQL 数据库转 Go 结构体的工具,支持 GORM v1/v2,可自动生成 CRUD 辅助函数。
gormt 简介
gormt 是由 xxjwxc 开发的开源工具,用于将 MySQL 数据库自动转换为 Go 结构体。它支持 GORM v1/v2,采用大驼峰命名规则,自动生成 JSON 标签。该项目在 GitHub 上拥有 2.4k stars 和 362 forks,采用 MIT 许可证。
核心定位:database to golang struct
核心功能
- 自动从 MySQL 数据库生成 Go 结构体
- 支持 GORM v1/v2
- 大驼峰命名规则
- JSON 标签支持
- 支持 GUI 和命令行两种模式
- 自动生成 CRUD 辅助函数
- 支持外键关联导出
基本信息
- GitHub 仓库:https://github.com/xxjwxc/gormt
- 星标数:2.4k stars
- Fork 数:362 forks
- 许可证:MIT
- 主要语言:Go (98.4%)
安装方法
bash
go get -u -v github.com/xxjwxc/gormt@latest使用方式
GUI 模式
bash
./gormt -g=true命令行模式
bash
./gormt -g=false配置示例
创建 config.yml:
yaml
out_dir: "./model"
url_tag: json
db_tag: gorm
is_out_func: true
is_foreign_key: true
db_info:
host: "127.0.0.1"
port: 3306
username: "root"
password: "qwer"
database: "oauth_db"
type: 0 # 0: MySQL, 1: SQLite, 2: MSSQL命令行参数
| 参数 | 说明 |
|---|---|
-H, --host | 数据库地址 |
-d, --database | 数据库名 |
-u, --user | 用户名 |
-p, --password | 密码 |
--port | 端口号 (默认 3306) |
-o, --outdir | 输出目录 |
-F, --fun | 导出函数 |
-f, --foreign | 导出外键关联 |
-g, --gui | GUI 模式 |
生成示例
输入 SQL:
sql
CREATE TABLE `user_account_tbl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`account` varchar(64) NOT NULL,
`password` varchar(64) NOT NULL,
`account_type` int(11) NOT NULL COMMENT '帐号类型:0手机号,1邮件',
`reg_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `account` (`account`)
)输出 Go 结构体:
go
type UserAccountTbl struct {
ID int `gorm:"primary_key"`
Account string `gorm:"unique"`
Password string
AccountType int // 帐号类型:0手机号,1邮件
RegTime time.Time
}高级功能
- 分页查询:支持
model.Condition{}SQL 链式调用 - 自定义类型映射:通过
self_type_define配置 - 列注释:支持
[@gorm default:'test']语法 - 外键注释:
[@fk tableName.columnName]
构建命令
bash
make windows # Windows 构建
make linux # Linux 构建
make mac # macOS 构建
# 或
go generate相关链接
- 中文文档:README_zh_cn.md
- 详细文档:https://xxjwxc.github.io/post/gormt/
- Windows GUI 工具下载:v1.0.zip
- 发布版本:https://github.com/xxjwxc/gormt/releases
适用场景
- 数据库模型自动生成
- 减少重复编码工作
- 保持代码与数据库同步
- 快速搭建项目基础结构
总结
gormt 是一个实用的数据库转 Go 结构体工具,其优势包括:
- 自动化:一键生成结构体
- 支持 GORM:兼容 v1/v2
- GUI 支持:图形界面操作
- 功能丰富:支持外键、函数生成
对于使用 GORM 的 Go 开发者来说,这是一个提高生产力的好工具。
分享: