Procházet zdrojové kódy

紧急修复初始化会导致config配置文件错误的bug

pixel před 3 roky
rodič
revize
0d65d257c5
1 změnil soubory, kde provedl 22 přidání a 17 odebrání
  1. 22 17
      server/service/sys_initdb.go

+ 22 - 17
server/service/sys_initdb.go

@@ -3,10 +3,12 @@ package service
 import (
 	"database/sql"
 	"fmt"
+	"gin-vue-admin/config"
 	"gin-vue-admin/global"
 	"gin-vue-admin/model"
 	"gin-vue-admin/model/request"
 	"gin-vue-admin/source"
+	"gin-vue-admin/utils"
 	"github.com/spf13/viper"
 	"gorm.io/driver/mysql"
 	"gorm.io/gorm"
@@ -19,8 +21,10 @@ import (
 //@param:
 //@return: error
 
-func writeConfig(viper *viper.Viper, conf map[string]interface{}) error {
-	for k, v := range conf {
+func writeConfig(viper *viper.Viper, mysql config.Mysql) error {
+	global.GVA_CONFIG.Mysql = mysql
+	cs := utils.StructToMap(global.GVA_CONFIG)
+	for k, v := range cs {
 		viper.Set(k, v)
 	}
 	return viper.WriteConfig()
@@ -62,13 +66,12 @@ func initDB(InitDBFunctions ...model.InitDBFunc) (err error) {
 //@return: err error, treeMap map[string][]model.SysMenu
 
 func InitDB(conf request.InitDB) error {
-
-	baseSetting := map[string]interface{}{
-		"mysql.path":     "",
-		"mysql.db-name":  "",
-		"mysql.username": "",
-		"mysql.password": "",
-		"mysql.config":   "charset=utf8mb4&parseTime=True&loc=Local",
+	BaseMysql := config.Mysql{
+		Path:     "",
+		Dbname:   "",
+		Username: "",
+		Password: "",
+		Config:   "charset=utf8mb4&parseTime=True&loc=Local",
 	}
 
 	if conf.Host == "" {
@@ -84,14 +87,16 @@ func InitDB(conf request.InitDB) error {
 	if err := createTable(dsn, "mysql", createSql); err != nil {
 		return err
 	}
-	setting := map[string]interface{}{
-		"mysql.path":     fmt.Sprintf("%s:%s", conf.Host, conf.Port),
-		"mysql.db-name":  conf.DBName,
-		"mysql.username": conf.UserName,
-		"mysql.password": conf.Password,
-		"mysql.config":   "charset=utf8mb4&parseTime=True&loc=Local",
+
+	MysqlConfig := config.Mysql{
+		Path:     fmt.Sprintf("%s:%s", conf.Host, conf.Port),
+		Dbname:   conf.DBName,
+		Username: conf.UserName,
+		Password: conf.Password,
+		Config:   "charset=utf8mb4&parseTime=True&loc=Local",
 	}
-	if err := writeConfig(global.GVA_VP, setting); err != nil {
+
+	if err := writeConfig(global.GVA_VP, MysqlConfig); err != nil {
 		return err
 	}
 	m := global.GVA_CONFIG.Mysql
@@ -152,7 +157,7 @@ func InitDB(conf request.InitDB) error {
 		source.File,
 		source.BaseMenu)
 	if err != nil {
-		_ = writeConfig(global.GVA_VP, baseSetting)
+		_ = writeConfig(global.GVA_VP, BaseMysql)
 		return err
 	}
 	global.GVA_CONFIG.AutoCode.Root, _ = filepath.Abs("..")