package db import ( "fmt" "gitea.baoapi.com/root/stu_uuos/config" "gitea.baoapi.com/root/stu_uuos/logger" "gitea.baoapi.com/root/stu_uuos/util" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" log "github.com/micro/go-micro/v2/logger" ) var postgresDB *gorm.DB var postgresDB2 *gorm.DB var postgresDB3 *gorm.DB func openPostgres() { dataSourceName := fmt.Sprintf( "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable", config.GetConfig().DB.Host, config.GetConfig().DB.Port, config.GetConfig().DB.User, config.GetConfig().DB.Dbname, config.GetConfig().DB.Password, ) db, err := gorm.Open("postgres", dataSourceName) if err != nil { log.Fatal("failed to connect database: ", err) } dbCfg(db) postgresDB = db util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName)) } func openPostgres2() { dataSourceName := fmt.Sprintf( "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable", config.GetConfig().DB2.Host, config.GetConfig().DB2.Port, config.GetConfig().DB2.User, config.GetConfig().DB2.Dbname, config.GetConfig().DB2.Password, ) db, err := gorm.Open("postgres", dataSourceName) if err != nil { log.Fatal("failed to connect database: ", err) } //dbCfg(db) db.LogMode(true) db.SetLogger(logger.GetLogger()) db.DB().SetMaxOpenConns(20) db.DB().SetMaxIdleConns(10) db.SingularTable(true) postgresDB2 = db util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName)) } func openPostgres3() { dataSourceName := fmt.Sprintf( "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable", config.GetConfig().DB3.Host, config.GetConfig().DB3.Port, config.GetConfig().DB3.User, config.GetConfig().DB3.Dbname, config.GetConfig().DB3.Password, ) db, err := gorm.Open("postgres", dataSourceName) if err != nil { log.Fatal("failed to connect database: ", err) } //dbCfg(db) db.LogMode(true) db.SetLogger(logger.GetLogger()) db.DB().SetMaxOpenConns(20) db.DB().SetMaxIdleConns(10) postgresDB3 = db util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName)) } func PostgresDB() *gorm.DB { return postgresDB }