Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork361
xxjwxc/gormt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
mysql database to golang struct conversion tools base ongorm(v1/v2),You can automatically generate golang sturct from mysql database. big Camel-Case Name Rule, JSON tag.
./gormt -g=true
./gormt -g=false
go get -u -v github.com/xxjwxc/gormt@latest
or:Dowloading
note: for latest version of config format, please check /data/config/MyIni.go
out_dir:"./model"# out dirurl_tag:json# web url tag(json,db(https://github.com/google/go-querystring))language:# language(English,中 文)db_tag:gorm# DB tag(gorm,db)simple:false#simple outputis_out_sql:false# Whether to output sqlis_out_func:true# Whether to output functionis_foreign_key:true# Whether to mark foreign key or notis_gui:false# Whether to operate on guiis_table_name:false# Whether to out GetTableName/column functionis_null_to_point:false# database is 'DEFAULT NULL' then set element type as pointis_web_tag:falseis_web_tag_pk_hidden:falsetable_prefix:""#table prefixtable_names:""# Specified table generation, multiple tables with , separatedis_column_name:true# Whether to generate column namesis_out_file_by_table_name:false# Whether to generate multiple models based on table namesdb_info:host:"127.0.0.1"port:3306username:"root"password:"qwer"database:"oauth_db"type:0# database type (0:mysql , 1:sqlite , 2:mssql)self_type_define:# Custom data type mappingdatetime:time.Timedate:time.Timeout_file_name:""# Custom build file nameweb_tag_type:0# json tag 0: Small Camel-Case 1: _
./gormt --helpor./gormt -h-------------------------------------------------------base on gorm tools for mysql database to golang structUsage: 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 是否禁用表名复数 -b, --table_names string 表名称 -l, --url string url标签(json,url) -u, --user string 用户名.
./gormt -H=127.0.0.1 -d=oauth_db -p=qwer -u=root --port=3306 -F=true
- Database tables, column field annotation support
- json tag json tag output
- gorm.ModelSupport export gorm.model>>>
- PRIMARY_KEYSpecifies column as primary key
- UNIQUESpecifies column as unique
- NOT NULLSpecifies column as NOT NULL
- INDEXCreate index with or without name, same name creates composite indexes
- UNIQUE_INDEXLike INDEX, create unique index
- Support foreign key related propertiesSupport export gorm.model>>>
- Support function export (foreign key, association, index , unique and more)Support export function >>>
- model.Condition{} sql link
You can enrich data types indef
- sql:
CREATE TABLE `user_account_tbl` ( `id` int(11) NOT NULL AUTO_INCREMENT, `account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `account_type` int(11) NOT NULL DEFAULT '0' COMMENT '帐号类型:0手机号,1邮件', `app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client表的id', `user_info_tbl_id` int(11) NOT NULL, `reg_time` datetime DEFAULT NULL, `reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `account` (`account`) USING BTREE, KEY `user_info_id` (`user_info_tbl_id`) USING BTREE, CONSTRAINT `user_account_tbl_ibfk_1` FOREIGN KEY (`user_info_tbl_id`) REFERENCES `user_info_tbl` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户账号'
// UserAccountTbl 用户账号type UserAccountTbl struct {ID int `gorm:"primary_key"`Account string `gorm:"unique"`Password stringAccountType int // 帐号类型:0手机号,1邮件AppKey string // authbucket_oauth2_client表的idUserInfoTblID int `gorm:"index"`UserInfoTbl UserInfoTbl `gorm:"association_foreignkey:user_info_tbl_id;foreignkey:id"` // 用户信息RegTime time.TimeRegIP stringBundleID stringDescrib string}
// FetchByPrimaryKey primary or index 获取唯一内容func (obj *_UserAccountTblMgr) FetchByPrimaryKey(ID int) (result UserAccountTbl, err error) {err = obj.DB.Table(obj.GetTableName()).Where("id = ?", ID).Find(&result).Errorif err == nil && obj.isRelated {{var info UserInfoTbl // 用户信息err = obj.DB.Table("user_info_tbl").Where("id = ?", result.UserInfoTblID).Find(&info).Errorif err != nil {return}result.UserInfoTbl = info}}return}
make windowsmake linuxmake mac
or
go generate
- Switch encoding mode
CHCP 65001
- Add a comment to the column starting with
[@gorm default:'test']
- example
[@gorm default:'test';->;<-:create]this is my notes
Indicates that the default value is 'test',can read/creat/write - Use of foreign key notes
[@fk tableName.columnName]this is my notes
Represents the 'columnName' column associated with the 'tableName'
About
database to golang struct
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.