123456789101112131415161718192021222324252627282930313233 |
- package infrastructure
- import (
- "fmt"
- "gogs.tyduyong.com/duyong/dy-pkg/app/options"
- "gorm.io/driver/postgres"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- )
- func InitPGSql(opts *options.PGSQLOptions) (*gorm.DB, error) {
- dsn := "host=%s user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai"
- connStr := fmt.Sprintf(dsn, opts.Host, opts.Username, opts.Password, opts.Database)
- openDb, err := gorm.Open(postgres.Open(connStr), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Error),
- PrepareStmt: true,
- })
- if err != nil {
- return nil, err
- }
- // 获取原始db句柄
- db, err := openDb.DB()
- if err != nil {
- return nil, err
- }
- db.SetMaxOpenConns(opts.MaxOpenConnections)
- db.SetMaxIdleConns(opts.MaxIdleConnections)
- db.SetConnMaxLifetime(opts.MaxConnectionLifeTime)
- return openDb, nil
- }
|