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.

58 lines
958 B

2 years ago
  1. package db
  2. import (
  3. "gitea.baoapi.com/root/stu_uuos/logger"
  4. "gitea.baoapi.com/root/stu_uuos/util"
  5. "github.com/jinzhu/gorm"
  6. log "github.com/micro/go-micro/v2/logger"
  7. )
  8. var db *gorm.DB
  9. var db2 *gorm.DB
  10. var db3 *gorm.DB
  11. func Init() {
  12. openPostgres()
  13. db = postgresDB
  14. openPostgres2()
  15. db2 = postgresDB2
  16. openPostgres3()
  17. db3 = postgresDB3
  18. }
  19. func DB() *gorm.DB {
  20. return db
  21. }
  22. func DB2() *gorm.DB {
  23. return db2
  24. }
  25. func DB3() *gorm.DB {
  26. return db3
  27. }
  28. func Close() error {
  29. if err := postgresDB.Close(); err != nil {
  30. log.Errorf("%v close error", "db")
  31. }
  32. if err := postgresDB2.Close(); err != nil {
  33. log.Errorf("%v close error", "db2")
  34. }
  35. if err := postgresDB3.Close(); err != nil {
  36. log.Errorf("%v close error", "db3")
  37. }
  38. util.PrintInfo("close database connections")
  39. return nil
  40. }
  41. func dbCfg(db *gorm.DB) {
  42. db.SingularTable(true)
  43. db.LogMode(true)
  44. db.SetLogger(logger.GetLogger())
  45. db.DB().SetMaxOpenConns(50)
  46. db.DB().SetMaxIdleConns(20)
  47. }