init.go 660 B

123456789101112131415161718192021222324252627282930313233343536
  1. package database
  2. import (
  3. "fmt"
  4. "gorm.io/driver/mysql"
  5. "gorm.io/gorm"
  6. "newaterobot-process/config"
  7. )
  8. var DB *gorm.DB
  9. // InitDB 初始化数据库连接
  10. func InitDB() error {
  11. mysqlConfig := config.GlobalConfig.MySQL
  12. // 构建DSN
  13. dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=%t&loc=%s",
  14. mysqlConfig.Username,
  15. mysqlConfig.Password,
  16. mysqlConfig.Host,
  17. mysqlConfig.Port,
  18. mysqlConfig.Dbname,
  19. mysqlConfig.Charset,
  20. mysqlConfig.ParseTime,
  21. mysqlConfig.Loc)
  22. var err error
  23. DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
  24. if err != nil {
  25. return fmt.Errorf("failed to connect to database: %v", err)
  26. }
  27. return nil
  28. }