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
1.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package initialize
  2. import (
  3. "autocode/config"
  4. "autocode/global"
  5. "autocode/initialize/internal"
  6. "fmt"
  7. "gorm.io/driver/postgres"
  8. "gorm.io/gorm"
  9. "log"
  10. )
  11. func GormInit() *gorm.DB {
  12. p := global.GVA_CONFIG.Pgsql
  13. if p.Dbname == "" {
  14. return nil
  15. }
  16. dataSourceName := fmt.Sprintf(
  17. "host=%v port=%v user=%v dbname=%v password=%v sslmode=disable",
  18. p.Path,
  19. p.Port,
  20. p.Username,
  21. p.Dbname,
  22. p.Password,
  23. )
  24. db, err := gorm.Open(postgres.Open(dataSourceName), &gorm.Config{})
  25. if err != nil {
  26. log.Fatal("failed to connect database: ", err)
  27. } else {
  28. sqlDB, _ := db.DB()
  29. sqlDB.SetMaxOpenConns(50)
  30. sqlDB.SetMaxIdleConns(20)
  31. fmt.Sprintf("connection to postgres database: %s", dataSourceName)
  32. }
  33. return db
  34. }
  35. // GormPgSqlByConfig 初始化 Postgresql 数据库 通过参数
  36. func GormPgSqlByConfig(p config.DB) *gorm.DB {
  37. if p.Dbname == "" {
  38. return nil
  39. }
  40. pgsqlConfig := postgres.Config{
  41. DSN: p.Dsn(), // DSN data source name
  42. PreferSimpleProtocol: false,
  43. }
  44. if db, err := gorm.Open(postgres.New(pgsqlConfig), internal.Gorm.Config()); err != nil {
  45. panic(err)
  46. } else {
  47. sqlDB, _ := db.DB()
  48. sqlDB.SetMaxIdleConns(p.MaxIdleConns)
  49. sqlDB.SetMaxOpenConns(p.MaxOpenConns)
  50. return db
  51. }
  52. }