api-platform/internal/base/orm/provide.go

37 lines
812 B
Go
Raw Normal View History

2024-11-21 11:25:32 +00:00
package orm
import (
"fmt"
2024-11-22 17:55:15 +00:00
"gorm.io/driver/postgres"
"leafdev.top/Leaf/api-p
"leafdev.top/Leaf/api-platform/internal/base/conf"
2024-11-22 14:51:29 +00:00
"gorm.io/driver/postgres"
2024-11-21 11:25:32 +00:00
"gorm.io/gorm"
"moul.io/zapgorm2"
)
func NewGORM(
config *conf.Config,
logger *logger.Logger,
) *gorm.DB {
2024-11-22 14:51:29 +00:00
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)
2024-11-21 11:25:32 +00:00
2024-11-22 14:51:29 +00:00
gormConfig := &gorm.Config{}
2024-11-21 11:25:32 +00:00
2024-11-22 14:51:29 +00:00
if !config.Debug.Enabled {
zapGormLogger := zapgorm2.New(logger.Logger)
zapGormLogger.SetAsDefault()
gormConfig.Logger = zapGormLogger
2024-11-21 11:25:32 +00:00
}
2024-11-22 14:51:29 +00:00
db, err := gorm.Open(postgres.Open(dsn), gormConfig)
2024-11-21 11:25:32 +00:00
if err != nil {
panic(err)
}
return db
}