Skip to content

Repository files navigation

gorm2sql: auto generate sql from gorm model struct

A Swiss Army Knife helps you generate sql from gorm model struct.

Installation

go get github.com/liudanking/gorm2sql

Usage

user_email.go:

typeUserBasestruct {
UserIdstring`sql:"index:idx_ub"`Ipstring`sql:"unique_index:uniq_ip"`
}
typeUserEmailstruct {
Idint64`gorm:"primary_key"`UserBaseEmailstringSexboolAgeintScorefloat64UpdateTime time.Time`sql:"default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"`CreateTime time.Time`sql:"default:CURRENT_TIMESTAMP"`
}
gorm2sql sql -f user_email.go -s UserEmail -o db.sql

Result:

CREATETABLE `user_email`
(
`id`bigint AUTO_INCREMENT NOT NULL ,
`user_id`varchar(128) NOT NULL ,
`ip`varchar(128) NOT NULL ,
`email`varchar(128) NOT NULL ,
`sex`booleanNOT NULL ,
`age`intNOT NULL ,
`score` double NOT NULL ,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX idx_ub (`user_id`),
UNIQUE INDEX uniq_ip (`ip`),
PRIMARY KEY (`id`)
) engine=innodb DEFAULT charset=utf8mb4;

How it works

gorm2sql loads go source file to golang AST, then generate sql according to tag of gorm struct field.

About

auto generate sql from gorm model struct

Topics

Resources

Stars

121 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages