gorm.go 881 B

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