Files
status/modules/db/db.go
ostiwe b33df27b31 refactor: Switching to a cron system for tasks, restructuring service and status models
Added response time field for Status model, set log level from ENV
2025-10-28 00:55:43 +03:00

54 lines
1.1 KiB
Go

package db
import (
"fmt"
"os"
"time"
appLog "git.ostiwe.com/ostiwe-com/status/modules/log"
"github.com/sirupsen/logrus"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var Global *gorm.DB
func init() {
appLog.Global.Put(appLog.DATABASE, logrus.New())
}
func Connect() (*gorm.DB, error) {
dsn := fmt.Sprintf(
"host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=%s",
os.Getenv("DATABASE_HOST"),
os.Getenv("DATABASE_USER"),
os.Getenv("DATABASE_PASS"),
os.Getenv("DATABASE_DB"),
os.Getenv("DATABASE_PORT"),
os.Getenv("APP_TZ"),
)
newLogger := logger.New(
appLog.Global.Get(appLog.DATABASE),
logger.Config{
SlowThreshold: time.Second, // Slow SQL threshold
LogLevel: logger.Info, // Log level
IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
ParameterizedQueries: false, // Don't include params in the SQL log
Colorful: false, // Disable color
},
)
return gorm.Open(
postgres.Open(dsn),
&gorm.Config{
Logger: newLogger,
},
)
}
func SetGlobal(bd *gorm.DB) {
Global = bd
}