db.go 930 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package global
  2. import (
  3. "fmt"
  4. "gorm.io/driver/mysql"
  5. "gorm.io/gorm"
  6. "gorm.io/gorm/logger"
  7. "log"
  8. "runtime"
  9. )
  10. var (
  11. DBLink *gorm.DB
  12. )
  13. func SetupDBLink() error {
  14. var err error
  15. dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?%s",
  16. DatabaseSetting.UserName,
  17. DatabaseSetting.Password,
  18. DatabaseSetting.Host,
  19. DatabaseSetting.Db,
  20. DatabaseSetting.OtherParams,
  21. )
  22. //判断当前系统是windows还是linux
  23. //runtime获取的是当前Go语言框架的参数,不是实际运行的操作系统的参数
  24. sysType := runtime.GOOS
  25. if sysType == "windows" {
  26. DBLink, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
  27. DisableForeignKeyConstraintWhenMigrating: true,
  28. Logger: logger.Default.LogMode(logger.Info),
  29. })
  30. log.Print("当前系统为windows")
  31. } else if sysType == "linux" {
  32. DBLink, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
  33. }
  34. if err != nil {
  35. return err
  36. }
  37. return nil
  38. }