postgresql.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package orm
  2. import (
  3. "fmt"
  4. "gorm.io/driver/postgres"
  5. "gorm.io/gorm"
  6. "gorm.io/gorm/logger"
  7. "time"
  8. )
  9. type PostgresqlConfig struct {
  10. Dsn string
  11. MaxIdleConns int
  12. MaxOpenConns int
  13. }
  14. func NewPostgresql(conf *PostgresqlConfig, logwriter logger.Writer) *gorm.DB {
  15. db, err := gorm.Open(postgres.Open(conf.Dsn), &gorm.Config{
  16. DisableForeignKeyConstraintWhenMigrating: true,
  17. Logger: logger.New(
  18. logwriter, // io writer
  19. logger.Config{
  20. SlowThreshold: time.Second, // Slow SQL threshold
  21. LogLevel: logger.Warn, // Log level
  22. //IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
  23. ParameterizedQueries: true, // Don't include params in the SQL log
  24. Colorful: true,
  25. },
  26. ),
  27. })
  28. if err != nil {
  29. fmt.Println(err)
  30. }
  31. sqlDB, err2 := db.DB()
  32. if err2 != nil {
  33. fmt.Println(err2)
  34. }
  35. // SetMaxIdleConns 设置空闲连接池中连接的最大数量
  36. sqlDB.SetMaxIdleConns(conf.MaxIdleConns)
  37. // SetMaxOpenConns 设置打开数据库连接的最大数量。
  38. sqlDB.SetMaxOpenConns(conf.MaxOpenConns)
  39. return db
  40. }