pgsql.go 793 B

123456789101112131415161718192021222324252627282930313233343536
  1. package database
  2. import (
  3. zapLogger "fwh-toolbox-server/logger"
  4. "fwh-toolbox-server/models/model_pgsql/query_alarm_snapshot"
  5. "gorm.io/driver/postgres"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/logger"
  8. )
  9. var PgSQL *gorm.DB
  10. func InitPostgreSQL(dsn string) (*gorm.DB, error) {
  11. db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
  12. // Logger: logger.Default.LogMode(logger.Info),
  13. Logger: NewGormZapLogger(zapLogger.Sugar, logger.Info),
  14. })
  15. if err != nil {
  16. zapLogger.Sugar.Errorf("failed to connect to PostgreSQL: %v", err)
  17. return nil, err
  18. }
  19. PgSQL = db
  20. // 自动迁移
  21. // db.AutoMigrate(&models.User{}, …)
  22. // 初始化Models
  23. initModels(db)
  24. return db, nil
  25. }
  26. // 数据库初始化后,需初始化相关Models
  27. func initModels(db *gorm.DB) {
  28. query_alarm_snapshot.SetDefault(db)
  29. }