feat: add dsn support #55
This commit is contained in:
@@ -25,6 +25,7 @@ type Config struct {
|
||||
Password string
|
||||
DBName string
|
||||
Path string // for sqlite
|
||||
DSN string // for mysql/mariadb unix socket or custom dsn
|
||||
}
|
||||
|
||||
func Init(cfg *Config) error {
|
||||
@@ -40,8 +41,11 @@ func Init(cfg *Config) error {
|
||||
case "sqlite":
|
||||
dialector = sqlite.Open(cfg.Path + "?_busy_timeout=5000")
|
||||
case "mysql":
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Asia%%2FShanghai",
|
||||
cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.DBName)
|
||||
dsn := cfg.DSN
|
||||
if dsn == "" {
|
||||
dsn = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Asia%%2FShanghai",
|
||||
cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.DBName)
|
||||
}
|
||||
dialector = mysql.Open(dsn)
|
||||
case "postgres":
|
||||
dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai",
|
||||
|
||||
Reference in New Issue
Block a user