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.

92 lines
2.2 KiB

2 years ago
  1. package db
  2. import (
  3. "fmt"
  4. "gitea.baoapi.com/root/stu_uuos/config"
  5. "gitea.baoapi.com/root/stu_uuos/logger"
  6. "gitea.baoapi.com/root/stu_uuos/util"
  7. "github.com/jinzhu/gorm"
  8. _ "github.com/jinzhu/gorm/dialects/postgres"
  9. log "github.com/micro/go-micro/v2/logger"
  10. )
  11. var postgresDB *gorm.DB
  12. var postgresDB2 *gorm.DB
  13. var postgresDB3 *gorm.DB
  14. func openPostgres() {
  15. dataSourceName := fmt.Sprintf(
  16. "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable",
  17. config.GetConfig().DB.Host,
  18. config.GetConfig().DB.Port,
  19. config.GetConfig().DB.User,
  20. config.GetConfig().DB.Dbname,
  21. config.GetConfig().DB.Password,
  22. )
  23. db, err := gorm.Open("postgres", dataSourceName)
  24. if err != nil {
  25. log.Fatal("failed to connect database: ", err)
  26. }
  27. dbCfg(db)
  28. postgresDB = db
  29. util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName))
  30. }
  31. func openPostgres2() {
  32. dataSourceName := fmt.Sprintf(
  33. "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable",
  34. config.GetConfig().DB2.Host,
  35. config.GetConfig().DB2.Port,
  36. config.GetConfig().DB2.User,
  37. config.GetConfig().DB2.Dbname,
  38. config.GetConfig().DB2.Password,
  39. )
  40. db, err := gorm.Open("postgres", dataSourceName)
  41. if err != nil {
  42. log.Fatal("failed to connect database: ", err)
  43. }
  44. //dbCfg(db)
  45. db.LogMode(true)
  46. db.SetLogger(logger.GetLogger())
  47. db.DB().SetMaxOpenConns(20)
  48. db.DB().SetMaxIdleConns(10)
  49. db.SingularTable(true)
  50. postgresDB2 = db
  51. util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName))
  52. }
  53. func openPostgres3() {
  54. dataSourceName := fmt.Sprintf(
  55. "host=%s port=%d user=%s dbname=%s password=%s sslmode=disable",
  56. config.GetConfig().DB3.Host,
  57. config.GetConfig().DB3.Port,
  58. config.GetConfig().DB3.User,
  59. config.GetConfig().DB3.Dbname,
  60. config.GetConfig().DB3.Password,
  61. )
  62. db, err := gorm.Open("postgres", dataSourceName)
  63. if err != nil {
  64. log.Fatal("failed to connect database: ", err)
  65. }
  66. //dbCfg(db)
  67. db.LogMode(true)
  68. db.SetLogger(logger.GetLogger())
  69. db.DB().SetMaxOpenConns(20)
  70. db.DB().SetMaxIdleConns(10)
  71. postgresDB3 = db
  72. util.PrintInfo(fmt.Sprintf("connection to postgres database: %s", dataSourceName))
  73. }
  74. func PostgresDB() *gorm.DB {
  75. return postgresDB
  76. }