修复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"
|
||||
|
||||
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" {
|
||||
|
@ -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))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user