Skip to content
A developer-friendly tool for generating golang struct using sql
JavaScript Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
css
html 添加form字段 Apr 19, 2018
img 实现基本功能 Oct 29, 2017
js fix:wong type mapping Oct 24, 2018
LICENSE
README.md
manifest.json 实现基本功能 Oct 29, 2017

README.md

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

You can’t perform that action at this time.