recommender/internal/base/orm/provide.go

47 lines
818 B
Go
Raw Normal View History

2024-11-06 10:47:56 +00:00
package orm
import (
"fmt"
"go-template/internal/base/conf"
"go-template/internal/base/logger"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"moul.io/zapgorm2"
)
//
//func ProviderOrm() *Orm {
// return NewOrm()
//}
func NewGORM(
config *conf.Config,
logger *logger.Logger,
) *gorm.DB {
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", config.Database.User, config.Database.Password, config.Database.Host, config.Database.Port, config.Database.Name)
if config.Debug.Enabled {
db, err := gorm.Open(mysql.Open(dsn))
if err != nil {
panic(err)
}
return db
}
zapGormLogger := zapgorm2.New(logger.Logger)
zapGormLogger.SetAsDefault()
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: zapGormLogger,
})
if err != nil {
panic(err)
}
return db
}