Files
scroll/database/config.go
ChuhanJin 60f30e5b33 feat: add database bin (#62)
Co-authored-by: chuhanjin <419436363@qq.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: maskpp <maskpp266@gmail.com>
2022-11-05 06:16:24 +00:00

39 lines
787 B
Go

package database
import (
"encoding/json"
"os"
"path/filepath"
"scroll-tech/common/utils"
)
// DBConfig db config
type DBConfig struct {
// data source name
DSN string `json:"dsn"`
DriverName string `json:"driver_name"`
MaxOpenNum int `json:"maxOpenNum" default:"200"`
MaxIdleNUm int `json:"maxIdleNum" default:"20"`
}
// NewConfig returns a new instance of Config.
func NewConfig(file string) (*DBConfig, error) {
buf, err := os.ReadFile(filepath.Clean(file))
if err != nil {
return nil, err
}
cfg := &DBConfig{}
err = json.Unmarshal(buf, cfg)
if err != nil {
return nil, err
}
// cover value by env fields
cfg.DSN = utils.GetEnvWithDefault("DB_DSN", cfg.DSN)
cfg.DriverName = utils.GetEnvWithDefault("DB_DRIVER", cfg.DriverName)
return cfg, nil
}