gorm_pgsql.go 801 字节
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1 2 3 4
package initialize

import (
	"github.com/flipped-aurora/gin-vue-admin/server/global"
Sliver_Horn's avatar
Sliver_Horn 已提交
5
	"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
Mr.奇淼('s avatar
Mr.奇淼( 已提交
6 7 8 9
	"gorm.io/driver/postgres"
	"gorm.io/gorm"
)

Sliver_Horn's avatar
Sliver_Horn 已提交
10
// GormPgSql 初始化 Postgresql 数据库
Sliver_Horn's avatar
Sliver_Horn 已提交
11 12
// Author [piexlmax](https://github.com/piexlmax)
// Author [SliverHorn](https://github.com/SliverHorn)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
13 14 15 16 17 18
func GormPgSql() *gorm.DB {
	p := global.GVA_CONFIG.Pgsql
	if p.Dbname == "" {
		return nil
	}
	pgsqlConfig := postgres.Config{
Sliver_Horn's avatar
Sliver_Horn 已提交
19
		DSN:                  p.Dsn(), // DSN data source name
Mr.奇淼('s avatar
Mr.奇淼( 已提交
20 21
		PreferSimpleProtocol: false,
	}
Sliver_Horn's avatar
Sliver_Horn 已提交
22
	if db, err := gorm.Open(postgres.New(pgsqlConfig), internal.Gorm.Config()); err != nil {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
23 24 25 26 27 28 29 30
		return nil
	} else {
		sqlDB, _ := db.DB()
		sqlDB.SetMaxIdleConns(p.MaxIdleConns)
		sqlDB.SetMaxOpenConns(p.MaxOpenConns)
		return db
	}
}