reload.go 950 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package initialize
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "go.uber.org/zap"
  5. )
  6. // Reload 优雅地重新加载系统配置
  7. func Reload() error {
  8. global.GVA_LOG.Info("正在重新加载系统配置...")
  9. // 重新加载配置文件
  10. if err := global.GVA_VP.ReadInConfig(); err != nil {
  11. global.GVA_LOG.Error("重新读取配置文件失败!", zap.Error(err))
  12. return err
  13. }
  14. // 重新初始化数据库连接
  15. if global.GVA_DB != nil {
  16. db, _ := global.GVA_DB.DB()
  17. err := db.Close()
  18. if err != nil {
  19. global.GVA_LOG.Error("关闭原数据库连接失败!", zap.Error(err))
  20. return err
  21. }
  22. }
  23. // 重新建立数据库连接
  24. global.GVA_DB = Gorm()
  25. // 重新初始化其他配置
  26. OtherInit()
  27. DBList()
  28. if global.GVA_DB != nil {
  29. // 确保数据库表结构是最新的
  30. RegisterTables()
  31. }
  32. // 重新初始化定时任务
  33. Timer()
  34. global.GVA_LOG.Info("系统配置重新加载完成")
  35. return nil
  36. }