gocctl model v20200819 (#18)
* rename snake、came method * new: generate model from data source * add change log md * update model doc * update doc * beauty codemaster
parent
50565c9765
commit
db83843558
@ -0,0 +1,10 @@
|
|||||||
|
# Change log
|
||||||
|
|
||||||
|
# 2020-08-20
|
||||||
|
* 新增支持通过连接数据库生成model
|
||||||
|
* 支持数据库多表生成
|
||||||
|
* 优化stringx
|
||||||
|
|
||||||
|
# 2020-08-19
|
||||||
|
* 重构model代码生成逻辑
|
||||||
|
* 实现从ddl解析表信息生成代码
|
@ -1,4 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# generate usermodel with cache
|
# generate model with cache from ddl
|
||||||
goctl model -src ./sql/user.sql -dir ./model -c true
|
goctl model mysql ddl -src="./sql/user.sql" -dir="./sql/model" -c=true
|
||||||
|
|
||||||
|
# generate model with cache from data source
|
||||||
|
goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/database" -table="table1,table2" -dir="./model"
|
@ -0,0 +1,33 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/tal-tech/go-zero/core/stores/sqlx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
DDLModel struct {
|
||||||
|
conn sqlx.SqlConn
|
||||||
|
}
|
||||||
|
DDL struct {
|
||||||
|
Table string `db:"Table"`
|
||||||
|
DDL string `db:"Create Table"`
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewDDLModel(conn sqlx.SqlConn) *DDLModel {
|
||||||
|
return &DDLModel{conn: conn}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DDLModel) ShowDDL(table ...string) ([]string, error) {
|
||||||
|
var ddl []string
|
||||||
|
for _, t := range table {
|
||||||
|
query := `show create table ` + t
|
||||||
|
var resp DDL
|
||||||
|
err := m.conn.QueryRow(&resp, query)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
ddl = append(ddl, resp.DDL)
|
||||||
|
}
|
||||||
|
return ddl, nil
|
||||||
|
}
|
Loading…
Reference in New Issue