go 将数据库转换为gorm结构 - 简书


本站和网页 https://www.jianshu.com/p/0913232ef033 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

go 将数据库转换为gorm结构 - 简书登录注册写文章首页下载APP会员IT技术go 将数据库转换为gorm结构xie1xiao1jun关注赞赏支持go 将数据库转换为gorm结构gormt
一款 mysql 数据库转 struct 工具
可以将mysql数据库自动生成 golang 结构
自动生成快捷操作函数
支持索引,外键
带大驼峰命名规则
带json标签
交互界面模式
ui_cn.gif
./gormt -g=true
命令行模式
out.gif
./gormt -g=false
1. 通过当前目录config.toml文件配置默认配置项
base:
is_dev : false
out_dir : ./model # 输出目录
url_tag : json # web url tag(json,db(https://github.com/google/go-querystring))
language : # 语言(English,中 文)
db_tag : gorm # 数据库标签(gorm,db)
singular_table : false # 单表模式:true:禁用表名复数,false:采用表明复数 参考:gorm.SingularTable
simple : false # 简单输出(默认gorm标签不输出)
is_out_sql : false # 是否输出 sql 原信息
is_out_func : true # 是否输出 快捷函数
is_url_tag : true # 是否打web标记
is_foreign_key : true # 是否导出外键关联
is_gui : false # 是否ui模式显示
mysql_info:
host : 127.0.0.1
port : 3306
username : root
password : qwer
database : oauth_db
2. 可以使用命令行工具更新配置项
./gormt -H=127.0.0.1 -d=oauth_db -p=qwer -u=root --port=3306
3. 查看帮助
./gormt -h
-------------------------------------------------------
base on gorm tools for mysql database to golang struct
Usage:
main [flags]
Flags:
-d, --database string 数据库名
-f, --foreign 是否导出外键关联
-F, --fun 是否导出函数
-g, --gui 是否ui显示模式
-h, --help help for main
-H, --host string 数据库地址.(注意-H为大写)
-o, --outdir string 输出目录
-p, --password string 密码.
--port int 端口号 (default 3306)
-s, --singular 是否禁用表名复数
-l, --url string url标签(json,url)
-u, --user string 用户名.
4. 支持gorm 相关属性
数据库表,列字段注释支持
singular_table 表名复数(大驼峰)
json tag json标签输出
gorm.Model 基本模型 支持gorm.Model模式导出>>>
PRIMARY_KEY 将列指定为主键
UNIQUE 将列指定为唯一
NOT NULL 将列指定为非 NULL
INDEX 创建具有或不带名称的索引, 如果多个索引同名则创建复合索引
UNIQUE_INDEX 和 INDEX 类似,只不过创建的是唯一索引
支持外键相关属性 简单带外键模式导出>>>
支持函数导出(包括:外键,关联体,索引关...)简单函数导出示例>>>
5. 示例展示
--->导出结果示例
参数:singular_table = false simple = false isJsonTag = true
// 用户信息
type UserAccountTbl struct {
ID int `gorm:"primary_key;column:id;type:int(11);not null" json:"-"` //
Account string `gorm:"unique;column:account;type:varchar(64);not null" json:"account"` //
Password string `gorm:"column:password;type:varchar(64);not null" json:"password"` //
AccountType int `gorm:"column:account_type;type:int(11);not null" json:"account_type"` // 帐号类型:0手机号,1邮件
AppKey string `json:"app_key" gorm:"unique_index:UNIQ_5696AD037D3656A4;column:app_key;type:varchar(255);not null"` // authbucket_oauth2_client表的id
UserInfoID int `gorm:"unique_index:UNIQ_5696AD037D3656A4;index;column:user_info_id;type:int(11);not null" json:"user_info_id"` //
RegTime time.Time `gorm:"column:reg_time;type:datetime" json:"reg_time"` //
RegIP string `gorm:"column:reg_ip;type:varchar(15)" json:"reg_ip"` //
BundleID string `json:"bundle_id" gorm:"column:bundle_id;type:varchar(255)"` //
Describ string `gorm:"column:describ;type:varchar(255)" json:"describ"` //
参数:singular_table = false simple = true isJsonTag = false
--->导出结果
// 用户信息
type UserAccountTbl struct {
ID int `gorm:"primary_key"` //
Account string `gorm:"unique"` //
Password string //
AccountType int // 帐号类型:0手机号,1邮件
AppKey string `gorm:"unique_index:UNIQ_5696AD037D3656A4"` // authbucket_oauth2_client表的id
UserInfoID int `gorm:"unique_index:UNIQ_5696AD037D3656A4;index"` //
RegTime time.Time //
RegIP string //
BundleID string //
Describ string //
更多>>>
6. 支持函数导出(导出函数只是 gorm 的辅助类函数,完全兼容 gorm 相关函数集)
// FetchByPrimaryKey primay or index 获取唯一内容
func (obj *_UserAccountTblMgr) FetchByPrimaryKey(ID int) (result UserAccountTbl, err error) {
err = obj.DB.Table(obj.GetTableName()).Where("id = ?", ID).Find(&result).Error
if err == nil && obj.isRelated {
var info UserInfoTbl // 用户信息
err = obj.DB.Table("user_info_tbl").Where("id = ?", result.UserInfoTblID).Find(&info).Error
if err != nil {
return
result.UserInfoTbl = info
return
更多>>>
函数调用示例>>>
7. 构建
make windows
make linux
make mac
or
go generate
8. 下一步计划
更新,删除功能函数添加
优化
9. 提供一个windows 可视化工具
1.png
2.jpg
3.jpg
4.jpg
下载地址
传送门
推荐阅读更多精彩内容Golang 将数据库转换为gorm结构和RESTful apihttps://github.com/smallnest/gen 介绍 gen工具从给定的数据库生成golang结...承诺一时的华丽阅读 6,351评论 0赞 16Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames...Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...草里有只羊阅读 17,783评论 0赞 85Lua 5.1 参考手册Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...苏黎九歌阅读 12,944评论 0赞 38pySpark 中文API (2)pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...mpro阅读 9,026评论 0赞 13Spring Boot application.properties原文链接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...pseudo_niaonao阅读 4,395评论 0赞 9浅谈 流行病“取悦症”0618今天晨读分享的是《取悦症》。 作者哈丽雅特·布莱克是一位有25年左右临床经验的心理学者,不知是职业习惯还是...天青色Gracy阅读 440评论 2赞 8这样记录自己的生活,让你的创作更简单便捷。某城某矿,某队某班休息室内。阴暗的休息室,三面是墙,没有窗户,南面两扇铁门,其中一扇铁门下面用水泥固定了十公分高,...等叶子红了撷一枚阅读 91评论 2赞 4献给高考学子――十载寒窗思梦花 十载寒窗思梦花 ――献给高考学子 一朝功力拚冬夏,十载寒窗思梦花。 挥笔试锋它日苦,几...夕青_阅读 5,076评论 161赞 168评论0赞33赞4赞赞赏更多好文