From a047dea4ce68e3dd54fbe1d033d07f5df3446d55 Mon Sep 17 00:00:00 2001 From: wilgx0 <396861557@qq.com> Date: Fri, 22 Apr 2022 17:11:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/app/system/controller/sys_init.go | 8 ++++++- internal/app/system/service/sys_init.go | 26 ++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/internal/app/system/controller/sys_init.go b/internal/app/system/controller/sys_init.go index 99ade52..63c518c 100644 --- a/internal/app/system/controller/sys_init.go +++ b/internal/app/system/controller/sys_init.go @@ -43,6 +43,12 @@ func (c *sysDbInitController) GetEnvInfo(ctx context.Context, req *system.DbInit // 创建配置文件及数据库等 func (c *sysDbInitController) CreateDb(ctx context.Context, req *system.DbInitCreateDbReq) (res *system.DbInitCreateDbRes, err error) { + // 生成数据库 + err = service.SysInit().CreateDataBaseByName(ctx, req) + if err != nil { + return + } + // 生成配置文件 err = service.SysInit().CreateConfigFile(ctx, req) if err != nil { @@ -55,7 +61,7 @@ func (c *sysDbInitController) CreateDb(ctx context.Context, req *system.DbInitCr return } - // 生成数据库 + // 生成数据库表机构及数据 err = service.SysInit().CreateDataBase(ctx, req.DbName) if err != nil { return diff --git a/internal/app/system/service/sys_init.go b/internal/app/system/service/sys_init.go index 6d4b549..c30037f 100644 --- a/internal/app/system/service/sys_init.go +++ b/internal/app/system/service/sys_init.go @@ -4,6 +4,7 @@ import ( "bufio" "bytes" "context" + "fmt" "github.com/gogf/gf/v2/container/gvar" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/database/gredis" @@ -27,6 +28,9 @@ type ISysInit interface { // 是否已生成配置文件 IsCreateConfigFile() bool + + //创建数据库 + CreateDataBaseByName(ctx context.Context, req *system.DbInitCreateDbReq) (err error) } func SysInit() ISysInit { @@ -47,6 +51,28 @@ func init() { SysInitConfig = c.MapStrVar() } +// 创建数据库 +func (s *sysInit) CreateDataBaseByName(ctx context.Context, req *system.DbInitCreateDbReq) (err error) { + db, err := gdb.New(gdb.ConfigNode{ + Type: "mysql", + Host: req.DbHost, + Port: fmt.Sprintf("%d", req.DbPort), + User: req.DbUser, + Pass: req.DbPass, + }) + if err != nil { + return + } + defer db.Close(ctx) + + _, err = db.Exec(ctx, fmt.Sprintf("CREATE DATABASE IF NOT EXISTS `%s` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci", req.DbName)) + if err != nil { + return + } + + return +} + // 是否已经生成配置文件 func (s *sysInit) IsCreateConfigFile() bool { return libUtils.FileIsExisted(SysInitConfig["configPath"].String())