gorm.go 788 B

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