V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
idoubi
V2EX  ›  分享创造

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

  •  
  •   idoubi · 51 天前 · 1432 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    • 支持自定义需要生成的 Go struct tags ;
    • 支持自定义在 Go struct 中需要全部大写的特殊字段;
    • 支持自定义 SQL 字段与 Go struct 字段的映射关系;

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

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

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

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

    14 条回复    2022-06-28 12:07:56 +08:00
    nash
        1
    nash  
       51 天前
    你这个 gorm 的生成是不是差点东西
    idoubi
        2
    idoubi  
    OP
       51 天前 via iPhone
    @nash 差了啥
    to2false
        3
    to2false  
       51 天前   ❤️ 1
    idoubi
        4
    idoubi  
    OP
       51 天前
    @to2false 功能挺全的
    sadfQED2
        5
    sadfQED2  
       51 天前 via Android
    哈哈哈,巧了巧了,一样的工具我也写了一个

    https://tools.jinnrry.com
    cheng6563
        6
    cheng6563  
       51 天前
    支持 Oracle 吗
    idoubi
        7
    idoubi  
    OP
       51 天前 via iPhone
    @cheng6563 Oracle 建表语句跟 mysql 差别很大吗?
    idoubi
        8
    idoubi  
    OP
       51 天前 via iPhone
    @sadfQED2 很棒
    cheng6563
        9
    cheng6563  
       51 天前
    @idoubi 说大不大说小不小。。
    idoubi
        10
    idoubi  
    OP
       51 天前 via iPhone
    @cheng6563 你可以试一下。只要满足我那个匹配的正则表达式应该就行
    v2defy
        11
    v2defy  
       50 天前 via Android
    ikaros
        12
    ikaros  
       50 天前
    我的需求是反向的,写完 struct 需要转 sql, 一般我都是用 gorm migrator.CreateTable() 然后把 sql 复制出来自己加索引
    waltcow
        13
    waltcow  
       50 天前
    有空研究下 sql2Protobuf
    idoubi
        14
    idoubi  
    OP
       50 天前 via iPhone
    @waltcow 确实是刚需
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2785 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:48 · PVG 20:48 · LAX 05:48 · JFK 08:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.