Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zendata
提交
d8b12def
Z
zendata
项目概览
易企天创
/
zendata
8 个月 前同步成功
通知
17
Star
2
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zendata
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d8b12def
编写于
4月 06, 2023
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
unit test for table parse
上级
c230478f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
193 addition
and
17 deletion
+193
-17
cmd/test/unit/parse_table/by_field_name.sql
cmd/test/unit/parse_table/by_field_name.sql
+17
-0
cmd/test/unit/parse_table/by_field_type.sql
cmd/test/unit/parse_table/by_field_type.sql
+33
-0
cmd/test/unit/parse_table/by_records.sql
cmd/test/unit/parse_table/by_records.sql
+19
-0
cmd/test/unit/parse_table/parse_test.go
cmd/test/unit/parse_table/parse_test.go
+106
-0
internal/pkg/config/config.go
internal/pkg/config/config.go
+1
-13
pkg/utils/file/file.go
pkg/utils/file/file.go
+17
-4
未找到文件。
cmd/test/unit/parse_table/by_field_name.sql
0 → 100644
浏览文件 @
d8b12def
DROP
TABLE
IF
EXISTS
`by_field_name`
;
CREATE
TABLE
`by_field_name`
(
`id`
int
unsigned
NOT
NULL
AUTO_INCREMENT
,
`username`
varchar
(
45
)
DEFAULT
NULL
,
`telphone`
varchar
(
45
)
DEFAULT
NULL
,
`mobilephone`
varchar
(
45
)
DEFAULT
NULL
,
`email`
varchar
(
45
)
DEFAULT
NULL
,
`url`
varchar
(
45
)
DEFAULT
NULL
,
`ip`
varchar
(
45
)
DEFAULT
NULL
,
`macaddress`
varchar
(
45
)
DEFAULT
NULL
,
`creditcard`
varchar
(
45
)
DEFAULT
NULL
,
`idcard`
varchar
(
45
)
DEFAULT
NULL
,
`token`
varchar
(
45
)
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`id_UNIQUE`
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
cmd/test/unit/parse_table/by_field_type.sql
0 → 100644
浏览文件 @
d8b12def
DROP
TABLE
IF
EXISTS
`by_field_type`
;
CREATE
TABLE
`by_field_type`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`f_bit`
bit
(
1
)
NOT
NULL
,
`f_tinyint`
tinyint
DEFAULT
NULL
,
`f_smallint`
smallint
DEFAULT
NULL
,
`f_mediumint`
mediumint
DEFAULT
NULL
,
`f_int`
int
DEFAULT
NULL
,
`f_bigint`
bigint
DEFAULT
NULL
,
`f_float`
float
DEFAULT
NULL
,
`f_double`
double
DEFAULT
NULL
,
`f_decimal`
decimal
(
10
,
2
)
DEFAULT
NULL
,
`f_char`
char
(
10
)
DEFAULT
NULL
,
`f_tinytext`
tinytext
,
`f_text`
text
,
`f_mediumtext`
mediumtext
,
`f_longtext`
longtext
,
`f_tinyblob`
tinyblob
,
`f_blob`
blob
,
`f_mediumblob`
mediumblob
,
`f_longblob`
longblob
,
`f_binary`
binary
(
10
)
DEFAULT
NULL
,
`f_varbinary`
varbinary
(
1000
)
DEFAULT
NULL
,
`f_date`
date
DEFAULT
NULL
,
`f_time`
time
DEFAULT
NULL
,
`f_year`
year
DEFAULT
NULL
,
`f_datetime`
datetime
DEFAULT
NULL
,
`f_timestamp`
timestamp
(
6
)
NULL
DEFAULT
NULL
,
`f_enum`
enum
(
'a'
,
'b'
,
'c'
)
DEFAULT
NULL
,
`f_set`
set
(
'a'
,
'b'
,
'c'
)
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
cmd/test/unit/parse_table/by_records.sql
0 → 100644
浏览文件 @
d8b12def
DROP
TABLE
IF
EXISTS
`by_records`
;
CREATE
TABLE
`by_records`
(
`id`
int
unsigned
NOT
NULL
AUTO_INCREMENT
,
`f1`
varchar
(
100
)
DEFAULT
NULL
,
`f2`
varchar
(
100
)
DEFAULT
NULL
,
`f3`
varchar
(
100
)
DEFAULT
NULL
,
`f4`
varchar
(
100
)
DEFAULT
NULL
,
`f5`
varchar
(
100
)
DEFAULT
NULL
,
`f6`
varchar
(
100
)
DEFAULT
NULL
,
`f7`
varchar
(
100
)
DEFAULT
NULL
,
`f8`
varchar
(
100
)
DEFAULT
NULL
,
`f9`
varchar
(
100
)
DEFAULT
NULL
,
`f10`
varchar
(
100
)
DEFAULT
NULL
,
`f11`
varchar
(
100
)
DEFAULT
NULL
,
`f12`
varchar
(
100
)
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`id_UNIQUE`
(
`id`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
;
cmd/test/unit/parse_table/parse_test.go
0 → 100644
浏览文件 @
d8b12def
package
parse_table
import
(
"flag"
"github.com/easysoft/zendata/internal/command"
commandConfig
"github.com/easysoft/zendata/internal/command/config"
configUtils
"github.com/easysoft/zendata/internal/pkg/config"
fileUtils
"github.com/easysoft/zendata/pkg/utils/file"
"github.com/easysoft/zendata/pkg/utils/vari"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"log"
"os"
"path/filepath"
"strings"
"testing"
)
var
(
Dsn
=
""
// "root:P2ssw0rd@(127.0.0.1:3306)/zd_test?charset=utf8&parseTime=True&loc=Local"
Out
=
""
// "demo/out/sql"
TableByFieldType
=
"by_field_type"
TableByFieldName
=
"by_field_name"
TableByRecords
=
"by_records"
)
func
setup
()
{
initArgs
()
os
.
Chdir
(
"../../../../"
)
configUtils
.
InitConfig
(
""
)
vari
.
DB
,
_
=
commandConfig
.
NewGormDB
()
initTables
()
}
func
teardown
()
{
}
func
TestMain
(
m
*
testing
.
M
)
{
setup
()
code
:=
m
.
Run
()
teardown
()
os
.
Exit
(
code
)
}
func
TestGenDefFromColumnDesc
(
t
*
testing
.
T
)
{
vari
.
GlobalVars
.
Table
=
"by_field_type"
gen
(
t
)
}
func
TestGenDefFromFieldName
(
t
*
testing
.
T
)
{
vari
.
GlobalVars
.
Table
=
"by_field_name"
gen
(
t
)
}
func
TestGenDefFromRecords
(
t
*
testing
.
T
)
{
vari
.
GlobalVars
.
Table
=
"by_records"
gen
(
t
)
}
func
gen
(
t
*
testing
.
T
)
{
mainCtrl
,
_
:=
command
.
InitCtrl
()
mainCtrl
.
GenYaml
(
""
)
}
func
initTables
()
{
initTable
(
TableByFieldType
)
initTable
(
TableByFieldName
)
initTable
(
TableByRecords
)
}
func
initTable
(
name
string
)
{
dir
:=
filepath
.
Join
(
"cmd"
,
"test"
,
"unit"
,
"parse_table"
)
sqls
:=
fileUtils
.
ReadFile
(
filepath
.
Join
(
dir
,
name
+
".sql"
))
arr
:=
strings
.
Split
(
sqls
,
";"
)
db
,
err
:=
gorm
.
Open
(
mysql
.
Open
(
vari
.
GlobalVars
.
DBDsn
))
if
err
!=
nil
{
panic
(
err
)
}
for
_
,
sql
:=
range
arr
{
if
sql
==
""
{
continue
}
err
=
db
.
Exec
(
sql
)
.
Error
if
err
!=
nil
{
panic
(
err
)
}
}
}
func
initArgs
()
{
flag
.
Parse
()
argList
:=
flag
.
Args
()
vari
.
GlobalVars
.
DBDsn
=
argList
[
0
]
vari
.
GlobalVars
.
Output
=
argList
[
1
]
log
.
Printf
(
"DBDsn = %s"
,
vari
.
GlobalVars
.
DBDsn
)
log
.
Printf
(
"Output = %s"
,
vari
.
GlobalVars
.
Output
)
}
internal/pkg/config/config.go
浏览文件 @
d8b12def
...
...
@@ -23,8 +23,7 @@ import (
)
func
InitConfig
(
root
string
)
{
var
err
error
=
nil
vari
.
WorkDir
=
fileUtils
.
GetWorkDir
()
vari
.
WorkDir
,
_
=
fileUtils
.
GetWorkDir
(
root
)
logUtils
.
PrintTo
(
fmt
.
Sprintf
(
"WorkDir=%s"
,
vari
.
WorkDir
))
vari
.
CfgFile
=
vari
.
WorkDir
+
".zd.conf"
...
...
@@ -32,17 +31,6 @@ func InitConfig(root string) {
i118Utils
.
InitI118
(
vari
.
Config
.
Language
)
if
root
!=
""
{
if
!
fileUtils
.
IsAbsPath
(
root
)
{
root
,
err
=
filepath
.
Abs
(
root
)
if
err
!=
nil
{
logUtils
.
PrintToWithColor
(
i118Utils
.
I118Prt
.
Sprintf
(
"root_invalid"
,
root
),
color
.
FgRed
)
os
.
Exit
(
1
)
}
}
vari
.
WorkDir
=
fileUtils
.
AddSepIfNeeded
(
root
)
}
temp
:=
filepath
.
Join
(
vari
.
WorkDir
,
"tmp"
,
"cache"
)
if
!
fileUtils
.
FileExist
(
temp
)
{
logUtils
.
PrintToWithColor
(
i118Utils
.
I118Prt
.
Sprintf
(
"root_invalid"
,
vari
.
WorkDir
),
color
.
FgRed
)
...
...
pkg/utils/file/file.go
浏览文件 @
d8b12def
...
...
@@ -122,7 +122,20 @@ func AddSepIfNeeded(pth string) string {
return
pth
}
func
GetWorkDir
()
string
{
func
GetWorkDir
(
root
string
)
(
ret
string
,
err
error
)
{
if
root
!=
""
{
if
!
IsAbsPath
(
root
)
{
root
,
err
=
filepath
.
Abs
(
root
)
if
err
!=
nil
{
logUtils
.
PrintToWithColor
(
i118Utils
.
I118Prt
.
Sprintf
(
"root_invalid"
,
root
),
color
.
FgRed
)
os
.
Exit
(
1
)
}
}
ret
=
AddSepIfNeeded
(
root
)
return
}
dir
:=
""
isRelease
:=
commonUtils
.
IsRelease
()
logUtils
.
PrintTo
(
fmt
.
Sprintf
(
"isRelease=%v"
,
isRelease
))
...
...
@@ -162,14 +175,14 @@ func GetWorkDir() string {
}
dir
,
_
=
filepath
.
Abs
(
dir
)
dir
=
AddSepIfNeeded
(
dir
)
ret
=
AddSepIfNeeded
(
dir
)
if
vari
.
Verbose
{
logUtils
.
PrintTo
(
fmt
.
Sprintf
(
"isRelease = %t, isRunAsBackendProcess = %t, workDir = %s
\n
"
,
isRelease
,
isRunAsBackendProcess
,
dir
))
isRelease
,
isRunAsBackendProcess
,
ret
))
}
return
dir
return
}
func
GetDirWhereRunIn
()
string
{
// where we run file in
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录