Files
EnGin/internal/conf/conf_db.go
T

28 lines
770 B
Go

package conf
import "fmt"
// DatabaseConfig 定义数据库连接配置结构体
type DatabaseConfig struct {
Driver string `yaml:"driver"`
Host string `yaml:"host"`
Port int `yaml:"port"`
User string `yaml:"user"`
Password string `yaml:"password"`
Dbname string `yaml:"dbname"`
}
// Dsn 根据 driver 动态生成 DSN 字符串
func (db DatabaseConfig) Dsn() string {
switch db.Driver {
case "mysql":
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
db.User, db.Password, db.Host, db.Port, db.Dbname)
case "postgres", "postgresql":
return fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
db.Host, db.Port, db.User, db.Password, db.Dbname)
default:
return ""
}
}