api-platform/internal/base/orm/provide.go
2024-11-23 01:55:15 +08:00

37 lines
812 B
Go

package orm
import (
"fmt"
"gorm.io/driver/postgres"
"leafdev.top/Leaf/api-p
"leafdev.top/Leaf/api-platform/internal/base/conf"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"moul.io/zapgorm2"
)
func NewGORM(
config *conf.Config,
logger *logger.Logger,
) *gorm.DB {
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=%s TimeZone=%s",
config.Database.Host, config.Database.User, config.Database.Password, config.Database.Name, config.Database.Port, config.Database.SSLMode, config.Database.TimeZone)
gormConfig := &gorm.Config{}
if !config.Debug.Enabled {
zapGormLogger := zapgorm2.New(logger.Logger)
zapGormLogger.SetAsDefault()
gormConfig.Logger = zapGormLogger
}
db, err := gorm.Open(postgres.Open(dsn), gormConfig)
if err != nil {
panic(err)
}
return db
}