diff --git a/sql2go/parser.go b/sql2go/parser.go index cb98b54..70791a0 100644 --- a/sql2go/parser.go +++ b/sql2go/parser.go @@ -64,12 +64,18 @@ func ParseCreateTableSql(sql string) (string, *BasicTableInfo, error) { structResult := "type " + basic.ModelStruct + " struct { \n" for _, item := range r.TableSpec.Columns { + comment := "" + if item.Type.Comment == nil { + comment = item.Name.String() + } else { + comment = string(item.Type.Comment.Val) + } data := map[string]string{ "{FIELD}": util.String.SnakeCaseToCamel(item.Name.String()), "{COLUMN}": item.Name.String(), "{JSON_TAG}": item.Name.String(), "{DEFAULT_VALUE}": "", - "{COMMENT}": item.Name.String() + " " + string(item.Type.Comment.Val), + "{COMMENT}": comment, "{TYPE}": sqlTypeMap[item.Type.Type], } if data["{FIELD}"] == "ID" { diff --git a/sql2go/parser_test.go b/sql2go/parser_test.go index 34801bb..0492750 100644 --- a/sql2go/parser_test.go +++ b/sql2go/parser_test.go @@ -16,3 +16,8 @@ func TestParseSql(t *testing.T) { sql := "CREATE TABLE `app` (\n `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',\n `code` varchar(128) NOT NULL DEFAULT '' COMMENT '分配的app_code',\n `secret` varchar(64) NOT NULL DEFAULT '' COMMENT '分配的私钥',\n `status` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '当前状态 o - 初始化 1- 使用中 2 - 禁用 3 - 删除',\n `description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述信息',\n `apply_user_name` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人姓名',\n `apply_user_contact` varchar(128) NOT NULL DEFAULT '' COMMENT '申请人联系方式',\n `create_user_id` varchar(128) NOT NULL DEFAULT '' COMMENT '创建人ID',\n `modify_user_id` varchar(128) NOT NULL DEFAULT '' COMMENT '修改人ID',\n PRIMARY KEY (`id`),\n UNIQUE KEY `uniq_code` (`code`)\n) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8mb4 COMMENT='APP信息表'" fmt.Println(ParseCreateTableSql(sql)) } + +func TestParseSqlForNoComment(t *testing.T) { + sql := "CREATE TABLE `app` (\n `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,\n `code` varchar(128) NOT NULL DEFAULT '' COMMENT '分配的app_code',\n `secret` varchar(64) NOT NULL DEFAULT '' COMMENT '分配的私钥',\n `status` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '当前状态 o - 初始化 1- 使用中 2 - 禁用 3 - 删除',\n `description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述信息',\n `apply_user_name` varchar(64) NOT NULL DEFAULT '' COMMENT '申请人姓名',\n `apply_user_contact` varchar(128) NOT NULL DEFAULT '' COMMENT '申请人联系方式',\n `create_user_id` varchar(128) NOT NULL DEFAULT '' COMMENT '创建人ID',\n `modify_user_id` varchar(128) NOT NULL DEFAULT '' COMMENT '修改人ID',\n PRIMARY KEY (`id`),\n UNIQUE KEY `uniq_code` (`code`)\n) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8mb4 COMMENT='APP信息表'" + fmt.Println(ParseCreateTableSql(sql)) +}