我写了一个用 SQL 转换 Go struct 的工具

2022-06-27 10:08:00 +08:00
 idoubi

Go web 开发中,在操作 db 的时候经常需要写一个 model 来映射需要用到的数据表字段。如果要映射的表字段比较多,在 Go struct 定义时一个一个去写非常麻烦。

五年前我写了一个叫做 sql2struct 的工具,可以通过 SQL 建表语句,自动转换成 Go struct 。

之前的版本只提供了 chrome 插件的使用渠道,最近使用新的技术栈重构了一版,新版样式长这样:

在数据库客户端通过 show create table xxx\G; 导出建表的 SQL 语句,粘贴到左侧的输入框,即可在右侧自动生成 Go struct 定义代码。

在线使用地址:https://dou.tools/sql2struct/

源码地址:https://github.com/idoubi/sql2struct

详细介绍博文:https://idoubi.cc/posts/sql2struct-new-version/

欢迎各位 V 友体验。现学现写的 typescript + react + vite + pnpm 项目,代码不规范之处,欢迎指点。

2524 次点击
所在节点    分享创造
14 条回复
nash
2022-06-27 10:14:32 +08:00
你这个 gorm 的生成是不是差点东西
idoubi
2022-06-27 10:41:43 +08:00
@nash 差了啥
to2false
2022-06-27 10:52:41 +08:00
idoubi
2022-06-27 11:11:35 +08:00
@to2false 功能挺全的
sadfQED2
2022-06-27 11:20:19 +08:00
哈哈哈,巧了巧了,一样的工具我也写了一个

https://tools.jinnrry.com
cheng6563
2022-06-27 16:31:21 +08:00
支持 Oracle 吗
idoubi
2022-06-27 16:51:09 +08:00
@cheng6563 Oracle 建表语句跟 mysql 差别很大吗?
idoubi
2022-06-27 16:51:18 +08:00
@sadfQED2 很棒
cheng6563
2022-06-27 17:06:58 +08:00
@idoubi 说大不大说小不小。。
idoubi
2022-06-27 17:52:44 +08:00
@cheng6563 你可以试一下。只要满足我那个匹配的正则表达式应该就行
v2defy
2022-06-28 07:37:56 +08:00
ikaros
2022-06-28 09:30:50 +08:00
我的需求是反向的,写完 struct 需要转 sql, 一般我都是用 gorm migrator.CreateTable() 然后把 sql 复制出来自己加索引
waltcow
2022-06-28 09:40:33 +08:00
有空研究下 sql2Protobuf
idoubi
2022-06-28 12:07:56 +08:00
@waltcow 确实是刚需

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/862402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX