cmd剔除 初始数据结构转移 修复初始携带apibug

This commit is contained in:
pixel
2021-03-04 16:02:09 +08:00
parent e3057c4bd9
commit e6768d5e17
18 changed files with 117 additions and 21 deletions

View File

@@ -1,12 +1,57 @@
package service
import (
"database/sql"
"fmt"
"gin-vue-admin/cmd/source"
"gin-vue-admin/global"
"gin-vue-admin/model"
"gin-vue-admin/model/request"
"gin-vue-admin/source"
"github.com/spf13/viper"
)
//@author: [songzhibin97](https://github.com/songzhibin97)
//@function: writeConfig
//@description: 回写配置
//@param:
//@return: error
func writeConfig(viper *viper.Viper, conf map[string]interface{}) error {
for k, v := range conf {
viper.Set(k, v)
}
return viper.WriteConfig()
}
//@author: [songzhibin97](https://github.com/songzhibin97)
//@function: createTable
//@description: 创建数据库(mysql)
//@param: dsn string, driver string, createSql
//@return: error
func createTable(dsn string, driver string, createSql string) error {
db, err := sql.Open(driver, dsn)
if err != nil {
return err
}
defer db.Close()
if err = db.Ping(); err != nil {
return err
}
_, err = db.Exec(createSql)
return err
}
func initDB(InitDBFunctions ...model.InitDBFunc) (err error) {
for _, v := range InitDBFunctions {
err = v.Init()
if err != nil {
return err
}
}
return nil
}
//@author: [songzhibin97](https://github.com/songzhibin97)
//@function: InitDB
//@description: 创建数据库并初始化
@@ -23,7 +68,7 @@ func InitDB(conf request.InitDB) error {
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/", conf.UserName, conf.Password, conf.Host, conf.Port)
fmt.Println(dsn)
createSql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;", conf.DBName)
if err := source.CreateTable(dsn, "mysql", createSql); err != nil {
if err := createTable(dsn, "mysql", createSql); err != nil {
return err
}
setting := map[string]interface{}{
@@ -32,9 +77,23 @@ func InitDB(conf request.InitDB) error {
"mysql.username": conf.UserName,
"mysql.password": conf.Password,
}
if err := source.WriteConfig(global.GVA_VP, setting); err != nil {
if err := writeConfig(global.GVA_VP, setting); err != nil {
return err
}
err := initDB(source.Admin,
source.Api,
source.AuthorityMenu,
source.Authority,
source.AuthoritiesMenus,
source.Casbin,
source.DataAuthorities,
source.Dictionary,
source.DictionaryDetail,
source.File,
source.BaseMenu,
source.Workflow)
if err!=nil {
return err
}
source.InitDB()
return nil
}