Files
esauth-2024/pkg/repository/database.go
T

42 lines
705 B
Go

package repository
import (
"esauth"
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
type Config struct {
Host string
Port string
Username string
Password string
DBName string
}
func NewDB(cfg Config) (*gorm.DB, error) {
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
cfg.Username,
cfg.Password,
cfg.Host,
cfg.Port,
cfg.DBName)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Silent),
})
if err != nil {
return nil, err
}
err = db.Set("gorm:table_options", "CHARSET=utf8mb4").AutoMigrate(&esauth.User{})
if err != nil {
return nil, err
}
return db, nil
}