fix setup bugs

This commit is contained in:
Max 2023-05-18 15:28:22 +08:00
parent b15853d862
commit af5d97794a
6 changed files with 52 additions and 15 deletions

View file

@ -35,6 +35,22 @@ func Load(cfg config.Config) error {
return nil return nil
} }
// Unload Connector
func Unload() error {
messages := []string{}
for id, conn := range connector.Connectors {
err := conn.Close()
if err != nil {
messages = append(messages, err.Error())
}
delete(connector.Connectors, id)
}
if len(messages) > 0 {
return fmt.Errorf("%s", strings.Join(messages, ";\n"))
}
return nil
}
// Close close connector // Close close connector
func Close() error { func Close() error {
messages := []string{} messages := []string{}

View file

@ -56,6 +56,12 @@ func Load(cfg config.Config) (err error) {
printErr(cfg.Mode, "Load Application", err) printErr(cfg.Mode, "Load Application", err)
} }
// Make Database connections
err = share.DBConnect(cfg.DB)
if err != nil {
printErr(cfg.Mode, "DB", err)
}
// Load Certs // Load Certs
err = cert.Load(cfg) err = cert.Load(cfg)
if err != nil { if err != nil {
@ -86,12 +92,6 @@ func Load(cfg config.Config) (err error) {
printErr(cfg.Mode, "Runtime", err) printErr(cfg.Mode, "Runtime", err)
} }
// Make Database connections
err = share.DBConnect(cfg.DB)
if err != nil {
printErr(cfg.Mode, "DB", err)
}
// Load Query Engine // Load Query Engine
err = query.Load(cfg) err = query.Load(cfg)
if err != nil { if err != nil {
@ -203,8 +203,11 @@ func Unload() (err error) {
// Close DB // Close DB
err = share.DBClose() err = share.DBClose()
// Close Query Engine
err = query.Unload()
// Close Connectors // Close Connectors
err = connector.Close() err = connector.Unload()
// Recycle // Recycle
// api // api

View file

@ -40,6 +40,14 @@ func Load(cfg config.Config) error {
return nil return nil
} }
// Unload Query Engine
func Unload() error {
for id := range query.Engines {
query.Unregister(id)
}
return nil
}
// registerDefaultQuery register the default engine // registerDefaultQuery register the default engine
func registerDefault() { func registerDefault() {
if capsule.Global != nil { if capsule.Global != nil {

View file

@ -10,6 +10,7 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/yaoapp/kun/exception" "github.com/yaoapp/kun/exception"
"github.com/yaoapp/xun" "github.com/yaoapp/xun"
"github.com/yaoapp/yao/engine"
"github.com/yaoapp/yao/widgets/app" "github.com/yaoapp/yao/widgets/app"
) )
@ -85,6 +86,12 @@ func runSetup(c *gin.Context) {
return return
} }
err = engine.Load(cfg)
if err != nil {
c.JSON(500, gin.H{"code": 500, "message": err.Error()})
return
}
// Return // Return
urls, err := AdminURL(cfg) urls, err := AdminURL(cfg)
if err != nil { if err != nil {

View file

@ -15,6 +15,7 @@ import (
"github.com/yaoapp/yao/config" "github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/data" "github.com/yaoapp/yao/data"
"github.com/yaoapp/yao/engine" "github.com/yaoapp/yao/engine"
"github.com/yaoapp/yao/studio"
"github.com/yaoapp/yao/widgets/app" "github.com/yaoapp/yao/widgets/app"
) )
@ -112,11 +113,18 @@ func Install(payload map[string]map[string]string) error {
if err != nil { if err != nil {
return err return err
} }
defer func() { defer func() {
engine.Unload() engine.Unload()
time.Sleep(time.Millisecond * 200) time.Sleep(time.Millisecond * 200)
}() }()
// Load Studio
err = studio.Load(cfg)
if err != nil {
return err
}
// Migrage & Setup // Migrage & Setup
err = makeMigrate(root, cfg) err = makeMigrate(root, cfg)
if err != nil { if err != nil {

View file

@ -132,24 +132,23 @@ func Start() (err error) {
// Complete stop the studio api server // Complete stop the studio api server
func Complete() { func Complete() {
engine.Unload()
Done <- true Done <- true
} }
// Stop stop the studio api server // Stop stop the studio api server
func Stop() { func Stop() {
engine.Unload()
shutdown <- true shutdown <- true
} }
// AdminURL get admin url // AdminURL get admin url
func AdminURL(cfg config.Config) ([]string, error) { func AdminURL(cfg config.Config) ([]string, error) {
err := engine.Load(cfg)
urls, err := URLs(cfg)
if err != nil { if err != nil {
return nil, err return nil, err
} }
urls, err := URLs(cfg)
adminRoot := "yao" adminRoot := "yao"
if app.Setting.AdminRoot != "" { if app.Setting.AdminRoot != "" {
adminRoot = app.Setting.AdminRoot adminRoot = app.Setting.AdminRoot
@ -164,10 +163,6 @@ func AdminURL(cfg config.Config) ([]string, error) {
// URLs get admin url // URLs get admin url
func URLs(cfg config.Config) ([]string, error) { func URLs(cfg config.Config) ([]string, error) {
err := engine.Load(cfg)
if err != nil {
return nil, err
}
ips, err := Ips() ips, err := Ips()
if err != nil { if err != nil {