代码拉取完成,页面将自动刷新
package connect
import (
"database/sql"
"errors"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gitee.com/chenhonghua/ginorigin/config/system/logger"
)
type Pgsql struct {
Path string `mapstructure:"path" json:"path" yaml:"path"` // 服务器地址:端口
Port string `mapstructure:"port" json:"port" yaml:"port"` //:端口
Config string `mapstructure:"config" json:"config" yaml:"config"` // 高级配置
Dbname string `mapstructure:"db-name" json:"dbname" yaml:"db-name"` // 数据库名
Username string `mapstructure:"username" json:"username" yaml:"username"` // 数据库用户名
Password string `mapstructure:"password" json:"password" yaml:"password"` // 数据库密码
MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"` // 空闲中的最大连接数
MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"` // 打开到数据库的最大连接数
LogMode string `mapstructure:"log-mode" json:"logMode" yaml:"log-mode"` // 是否开启Gorm全局日志
}
// Dsn 基于配置文件获取 dsn
// Author [SliverHorn](https://github.com/SliverHorn)
func (p *Pgsql) dsn() string {
return "host=" + p.Path + " user=" + p.Username + " password=" + p.Password + " dbname=" + p.Dbname + " port=" + p.Port + " " + p.Config
}
// 初始化数据库连接
func (p *Pgsql) GenConnect(gromConfig *gorm.Config) (db *gorm.DB, sqldb *sql.DB) {
if p.Dbname == "" {
panic(errors.New("未选择数据库"))
}
pgsqlConfig := postgres.Config{
DSN: p.dsn(), // DSN data source name
PreferSimpleProtocol: false,
}
logger.Debug("准备创建postgres连接:%v\n", pgsqlConfig)
db, err := gorm.Open(postgres.New(pgsqlConfig), gromConfig)
logger.PanicIfErr(err)
sqldb, err = db.DB()
logger.PanicIfErr(err)
err = sqldb.Ping()
logger.PanicIfErr(err)
sqldb.SetMaxIdleConns(p.MaxIdleConns)
sqldb.SetMaxOpenConns(p.MaxOpenConns)
return db, sqldb
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。