前言
最近在用golang写api,用到gorm包进行数据库操作,是golang中非常流行的一个orm包,使用gorm进行数据库操作前,一般需要先用一个golang结构体对数据表字段进行映射,于是我们经常需要根据数据表中的字段名和类型来手动在go代码中写struct,有时候数据表字段很多的情况下,这种方式很耗费精力。于是便想到了写一个chrome插件,根据数据表的DDL语句来自动生成golang结构体,可以配置go结构体字段类型与mysql数据表字段类型的一个映射关系。
SQL2Struct
SQL2Struct是一款对golang开发者友好的chrome插件,根据在mysql中创建数据表的sql语句,自动生成golang中的struct,在golang开发者使用诸如gorm之类的框架时,可以很好的把mysql中的数据表与orm的结构体关联起来。
github地址:
使用说明
下载chrome扩展文件:
安装扩展
- 在mysql中获取生成数据表的sql语句
show create table users\G;
进入插件主页面,把上一步得到的sql语句粘贴至左侧的输入框
复制右侧生成的struct,粘贴至golang代码中即可
配置说明
目前只有三个配置项
- gorm:开启此配置项,则生成struct的时候,每个字段都会包含类似
gorm:column:"id"
这样的信息。 - json:开启此配置项,则生成struct的时候,每个字段都会包含类似
json:"id"
这样的信息。 - typeMap:此配置项定义mysql数据表字段类型与go字段类型的映射关系,在数据解析的时候会安装配置的映射关系进行结构体生成。
Todolist
- [ ] 支持更多的mysql类型与go类型的映射
- [ ] 支持自定义要进行转换的字段配置
- [ ] 正则表达式优化
- [ ] 数据表名称复数形式与struct名称单数形式转换
- [ ] 增加主键、索引转换支持
Contribution
欢迎fork代码、提issue或者是pull request
原文地址: