You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
1.7 KiB

  1. package config
  2. type Pgsql struct {
  3. Path string `mapstructure:"path" json:"path" yaml:"path"` // 服务器地址:端口
  4. Port string `mapstructure:"port" json:"port" yaml:"port"` //:端口
  5. Config string `mapstructure:"config" json:"config" yaml:"config"` // 高级配置
  6. Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"` // 数据库名
  7. Username string `mapstructure:"username" json:"username" yaml:"username"` // 数据库用户名
  8. Password string `mapstructure:"password" json:"password" yaml:"password"` // 数据库密码
  9. MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"` // 空闲中的最大连接数
  10. MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"` // 打开到数据库的最大连接数
  11. LogMode string `mapstructure:"log-mode" json:"logMode" yaml:"log-mode"` // 是否开启Gorm全局日志
  12. LogZap bool `mapstructure:"log-zap" json:"logZap" yaml:"log-zap"` // 是否通过zap写入日志文件
  13. }
  14. // Dsn 基于配置文件获取 dsn
  15. // Author [SliverHorn](https://github.com/SliverHorn)
  16. func (p *Pgsql) Dsn() string {
  17. return "host=" + p.Path + " user=" + p.Username + " password=" + p.Password + " dbname=" + p.Dbname + " port=" + p.Port + " " + p.Config
  18. }
  19. // LinkDsn 根据 dbname 生成 dsn
  20. // Author [SliverHorn](https://github.com/SliverHorn)
  21. func (p *Pgsql) LinkDsn(dbname string) string {
  22. return "host=" + p.Path + " user=" + p.Username + " password=" + p.Password + " dbname=" + dbname + " port=" + p.Port + " " + p.Config
  23. }