gorm.go 870 B

123456789101112131415161718192021222324252627282930313233
  1. package mysql
  2. import (
  3. "gorm.io/driver/mysql"
  4. "gorm.io/gorm"
  5. "gorm.io/gorm/logger"
  6. "log"
  7. )
  8. /**
  9. 这个gromConfig支持自定义config 也可以用默认gorm的config,主要就是日志这一块
  10. */
  11. func GormMysql(dsn, driverName string, maxOpenConn, maxIdleConn int, gormConfig *gorm.Config) *gorm.DB {
  12. if gormConfig == nil {
  13. gormConfig = getGormConfig()
  14. }
  15. if db, err := gorm.Open(mysql.New(mysql.Config{DSN: dsn, DriverName: driverName}), gormConfig); err == nil {
  16. sqlDB, _ := db.DB()
  17. sqlDB.SetMaxIdleConns(maxIdleConn)
  18. sqlDB.SetMaxOpenConns(maxOpenConn)
  19. return db
  20. } else {
  21. log.Printf("GormMysql open Error,DSN:[%s],err:[%v]", dsn, err)
  22. }
  23. return nil
  24. }
  25. func getGormConfig() *gorm.Config {
  26. return &gorm.Config{
  27. Logger: logger.Default.LogMode(logger.Info),
  28. DisableForeignKeyConstraintWhenMigrating: true,
  29. }
  30. }