Skip to content

Commit

Permalink
Updated MySQL生成表结构体遇到关键字db部分保持原字段名定义 (#1369)
Browse files Browse the repository at this point in the history
  • Loading branch information
qwxingzhe committed Dec 26, 2021
1 parent cfcfb87 commit f5f2097
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
2 changes: 1 addition & 1 deletion tools/goctl/model/sql/gen/field.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func genFields(fields []*parser.Field) (string, error) {
}

func genField(field *parser.Field) (string, error) {
tag, err := genTag(field.Name.Source())
tag, err := genTag(field.NameOriginal)
if err != nil {
return "", err
}
Expand Down
21 changes: 19 additions & 2 deletions tools/goctl/model/sql/parser/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type (

// Field describes a table field
Field struct {
NameOriginal string
Name stringx.String
DataType string
Comment string
Expand All @@ -47,6 +48,19 @@ type (
KeyType int
)

func parseNameOriginal(ts []*parser.Table) (nameOriginals [][]string) {
var columns []string

for _, t := range ts {
columns = []string{}
for _, c := range t.Columns {
columns = append(columns, c.Name)
}
nameOriginals = append(nameOriginals, columns)
}
return
}

// Parse parses ddl into golang structure
func Parse(filename, database string) ([]*Table, error) {
p := parser.NewParser()
Expand All @@ -55,14 +69,16 @@ func Parse(filename, database string) ([]*Table, error) {
return nil, err
}

nameOriginals := parseNameOriginal(ts)

tables := GetSafeTables(ts)
indexNameGen := func(column ...string) string {
return strings.Join(column, "_")
}

prefix := filepath.Base(filename)
var list []*Table
for _, e := range tables {
for indexTable, e := range tables {
columns := e.Columns

var (
Expand Down Expand Up @@ -120,9 +136,10 @@ func Parse(filename, database string) ([]*Table, error) {

var fields []*Field
// sort
for _, c := range columns {
for indexColumn, c := range columns {
field, ok := fieldM[c.Name]
if ok {
field.NameOriginal = nameOriginals[indexTable][indexColumn]
fields = append(fields, field)
}
}
Expand Down

0 comments on commit f5f2097

Please sign in to comment.