yianz / sql2struct

A developer-friendly tool for generating golang struct using sql

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SQL2Struct

SQL2Struct是一款对golang开发者友好的chrome插件,根据在mysql中创建数据表的sql语句,自动生成golang中的struct,在golang开发者使用诸如gorm之类的框架时,可以很好的把mysql中的数据表与orm的结构体关联起来。

使用说明

  1. 下载扩展源码
git clone https://github.com/idoubi/sql2struct.git
  1. 安装扩展

Chrome浏览器地址栏输入chrome://extensions/进入扩展程序管理中心, 点击“加载已解压的扩展程序”,通过源码进行安装。

  1. 在mysql中获取生成数据表的sql语句
show create table system_user\G;
  1. 进入插件主页面,把上一步得到的sql语句粘贴至左侧的输入框

  2. 复制右侧生成的struct,粘贴至golang代码中即可

配置说明

目前只有三个配置项

  • gorm:开启此配置项,则生成struct的时候,每个字段都会包含类似gorm:column:"id"这样的信息。
  • json:开启此配置项,则生成struct的时候,每个字段都会包含类似json:"id"这样的信息。
  • typeMap:此配置项定义mysql数据表字段类型与go字段类型的映射关系,在数据解析的时候会按照配置的映射关系进行结构体生成。

typeMap默认的映射关系为:

{
    "tinyint": "int64",
    "smallint": "int64",
    "int": "int64",
    "mediumint": "int64",
    "bigint": "int64",
    "float": "float64",
    "double": "float64",
    "decimal": "float64",
    "char": "string",
    "varchar": "string",
    "text": "string",
    "mediumtext": "string",
    "longtext": "string",
    "time": "time.Time",
    "date": "time.Time",
    "datetime": "time.Time",
    "timestramp": "int64",
    "enum": "string",
    "set": "string",
    "blob": "string"
}

Todolist

  • 支持更多的mysql类型与go类型的映射
  • 支持自定义要进行转换的字段配置
  • 正则表达式优化
  • 数据表名称复数形式与struct名称单数形式转换
  • 增加主键、索引转换支持

Contribution

欢迎fork代码、提issue或者是pull request

About

A developer-friendly tool for generating golang struct using sql

License:MIT License


Languages

Language:JavaScript 99.0%Language:HTML 1.0%Language:CSS 0.0%