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.
|
|
package initialize
import ( "autocode/config" "autocode/global" "autocode/initialize/internal" "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" "log" )
func GormInit() *gorm.DB { p := global.GVA_CONFIG.Pgsql
if p.Dbname == "" { return nil } dataSourceName := fmt.Sprintf( "host=%v port=%v user=%v dbname=%v password=%v sslmode=disable", p.Path, p.Port, p.Username, p.Dbname, p.Password, )
db, err := gorm.Open(postgres.Open(dataSourceName), &gorm.Config{})
if err != nil { log.Fatal("failed to connect database: ", err) } else { sqlDB, _ := db.DB() sqlDB.SetMaxOpenConns(50) sqlDB.SetMaxIdleConns(20) fmt.Sprintf("connection to postgres database: %s", dataSourceName) } return db }
// GormPgSqlByConfig 初始化 Postgresql 数据库 通过参数
func GormPgSqlByConfig(p config.DB) *gorm.DB { 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 } }
|