init.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package mysql
  2. import (
  3. "dsbqj-admin/pkg/logger"
  4. "fmt"
  5. "os"
  6. "time"
  7. "github.com/gin-gonic/gin"
  8. "github.com/jinzhu/gorm"
  9. //
  10. _ "github.com/jinzhu/gorm/dialects/mysql"
  11. )
  12. // DB 数据库链接单例
  13. var DB *gorm.DB
  14. // Database 在中间件中初始化mysql链接
  15. func Database(connString string) {
  16. logger.Info("开始连接mysql....%s", connString)
  17. db, err := gorm.Open("mysql", connString)
  18. db.LogMode(true)
  19. // Error
  20. if err != nil {
  21. fmt.Println(err)
  22. panic(err)
  23. }
  24. if gin.Mode() == "release" {
  25. db.LogMode(false)
  26. }
  27. //设置连接池
  28. //空闲
  29. db.DB().SetMaxIdleConns(20)
  30. //打开
  31. db.DB().SetMaxOpenConns(100)
  32. //超时
  33. db.DB().SetConnMaxLifetime(time.Second * 30)
  34. gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
  35. return os.Getenv("MYSQL_PREFIX") + defaultTableName
  36. }
  37. DB = db
  38. logger.Info("连接mysql成功...")
  39. migration()
  40. }
  41. func Connect(connString string, prefix string) *gorm.DB {
  42. fmt.Println("开始连接mysql....")
  43. db, err := gorm.Open("mysql", connString)
  44. db.LogMode(true)
  45. // Error
  46. if err != nil {
  47. panic(err)
  48. }
  49. if gin.Mode() == "release" {
  50. db.LogMode(false)
  51. }
  52. //设置连接池
  53. //空闲
  54. db.DB().SetMaxIdleConns(20)
  55. //打开
  56. db.DB().SetMaxOpenConns(100)
  57. //超时
  58. db.DB().SetConnMaxLifetime(time.Second * 30)
  59. gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
  60. return prefix + defaultTableName
  61. }
  62. fmt.Println("连接mysql成功...")
  63. return db
  64. }