package config import "fmt" type database struct { Driver string `yaml:"driver"` Host string `yaml:"host"` Port int `yaml:"port"` User string `yaml:"user"` Password string `yaml:"password"` Db string `yaml:"db"` } func (d database) GetDSN() string { switch d.Driver { case "mysql": return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", d.User, d.Password, d.Host, d.Port, d.Db) case "pgsql": return fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai", d.Host, d.User, d.Password, d.Db, d.Port) case "sqlite": return fmt.Sprintf("%s.db", d.Db) } return "" }