database.go 952 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package db
  2. import (
  3. "fmt"
  4. "sparkteam-dash/pkg/config"
  5. log "sparkteam-dash/pkg/logger"
  6. "time"
  7. "gorm.io/driver/mysql"
  8. "gorm.io/gorm"
  9. "gorm.io/gorm/logger"
  10. )
  11. var (
  12. logEngine *gorm.DB
  13. )
  14. func Init() {
  15. InitLogDb()
  16. }
  17. func InitLogDb() {
  18. mysqlConf := config.App.LogMySQL
  19. connectDNS := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
  20. mysqlConf.Username, mysqlConf.Password, mysqlConf.Addr, mysqlConf.DbName)
  21. conn, err := gorm.Open(mysql.Open(connectDNS),
  22. &gorm.Config{
  23. Logger: logger.Default.LogMode(config.GetLogLevel()),
  24. SkipDefaultTransaction: true,
  25. })
  26. if err != nil {
  27. panic(err)
  28. }
  29. if config.App.GinMode == "debug" {
  30. conn.Debug()
  31. }
  32. sqlDB, err := conn.DB()
  33. if err != nil {
  34. log.Fatalf("mysql lost: %v", err)
  35. }
  36. sqlDB.SetMaxIdleConns(10)
  37. sqlDB.SetMaxOpenConns(20)
  38. sqlDB.SetConnMaxLifetime(2 * time.Hour)
  39. logEngine = conn
  40. }
  41. func LogEngine() *gorm.DB {
  42. return logEngine
  43. }