gorm_pgsql.go 1.3 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1 2 3
package initialize

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

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

// GormPgSqlByConfig 初始化 Postgresql 数据库 通过参数
34
func GormPgSqlByConfig(p config.Pgsql) *gorm.DB {
S
songzhibin97 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
	if p.Dbname == "" {
		return nil
	}
	pgsqlConfig := postgres.Config{
		DSN:                  p.Dsn(), // DSN data source name
		PreferSimpleProtocol: false,
	}
	if db, err := gorm.Open(postgres.New(pgsqlConfig), internal.Gorm.Config()); err != nil {
		panic(err)
	} else {
		sqlDB, _ := db.DB()
		sqlDB.SetMaxIdleConns(p.MaxIdleConns)
		sqlDB.SetMaxOpenConns(p.MaxOpenConns)
		return db
	}
}