修复sql语句没有COMMENT导致的panic问题 && 增加单元测试
This commit is contained in:
parent
da6e156f11
commit
d85b27cb9c
@ -64,12 +64,18 @@ func ParseCreateTableSql(sql string) (string, *BasicTableInfo, error) {
|
|||||||
structResult := "type " + basic.ModelStruct + " struct { \n"
|
structResult := "type " + basic.ModelStruct + " struct { \n"
|
||||||
|
|
||||||
for _, item := range r.TableSpec.Columns {
|
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{
|
data := map[string]string{
|
||||||
"{FIELD}": util.String.SnakeCaseToCamel(item.Name.String()),
|
"{FIELD}": util.String.SnakeCaseToCamel(item.Name.String()),
|
||||||
"{COLUMN}": item.Name.String(),
|
"{COLUMN}": item.Name.String(),
|
||||||
"{JSON_TAG}": item.Name.String(),
|
"{JSON_TAG}": item.Name.String(),
|
||||||
"{DEFAULT_VALUE}": "",
|
"{DEFAULT_VALUE}": "",
|
||||||
"{COMMENT}": item.Name.String() + " " + string(item.Type.Comment.Val),
|
"{COMMENT}": comment,
|
||||||
"{TYPE}": sqlTypeMap[item.Type.Type],
|
"{TYPE}": sqlTypeMap[item.Type.Type],
|
||||||
}
|
}
|
||||||
if data["{FIELD}"] == "ID" {
|
if data["{FIELD}"] == "ID" {
|
||||||
|
@ -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信息表'"
|
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))
|
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))
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user