瀏覽代碼

fix bug: crash when generate model with goctl. (#1777)

* fix bug: crash when generate model with goctl.

situation: column name with line.

CREATE TABLE test (
id int NOT NULL AUTO_INCREMENT,
zh-cn text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '中文简体',
PRIMARY KEY (id) USING BTREE,
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

* group imports

group imports

* Use

go-zero/tools/goctl/util/string.go
 func SafeString(in string) string {
instead of ReplaceAll

Co-authored-by: 方航 <fanghang@tange.ai>
方航 3 年之前
父節點
當前提交
fabea4c448
共有 3 個文件被更改,包括 3 次插入3 次删除
  1. 1 1
      tools/goctl/model/sql/gen/field.go
  2. 1 1
      tools/goctl/model/sql/gen/insert.go
  3. 1 1
      tools/goctl/model/sql/gen/update.go

+ 1 - 1
tools/goctl/model/sql/gen/field.go

@@ -38,7 +38,7 @@ func genField(table Table, field *parser.Field) (string, error) {
 	output, err := util.With("types").
 		Parse(text).
 		Execute(map[string]interface{}{
-			"name":       field.Name.ToCamel(),
+			"name":       util.SafeString(field.Name.ToCamel()),
 			"type":       field.DataType,
 			"tag":        tag,
 			"hasComment": field.Comment != "",

+ 1 - 1
tools/goctl/model/sql/gen/insert.go

@@ -30,7 +30,7 @@ func genInsert(table Table, withCache, postgreSql bool) (string, string, error)
 	expressionValues := make([]string, 0)
 	var count int
 	for _, field := range table.Fields {
-		camel := field.Name.ToCamel()
+		camel := util.SafeString(field.Name.ToCamel())
 		if camel == "CreateTime" || camel == "UpdateTime" {
 			continue
 		}

+ 1 - 1
tools/goctl/model/sql/gen/update.go

@@ -14,7 +14,7 @@ import (
 func genUpdate(table Table, withCache, postgreSql bool) (string, string, error) {
 	expressionValues := make([]string, 0)
 	for _, field := range table.Fields {
-		camel := field.Name.ToCamel()
+		camel := util.SafeString(field.Name.ToCamel())
 		if camel == "CreateTime" || camel == "UpdateTime" {
 			continue
 		}