11package models
22
33import (
4+ "fmt"
45 "log"
56 "os"
67 "time"
@@ -10,7 +11,7 @@ import (
1011
1112var DB * gorm.DB
1213
13- func ConnectDatabase () {
14+ func ConnectDatabase () error {
1415 // Build connection string from env variables
1516 host := getEnv ("DB_HOST" , "localhost" )
1617 user := getEnv ("DB_USER" , "postgres" )
@@ -19,31 +20,31 @@ func ConnectDatabase() {
1920 password := getEnv ("DB_PASSWORD" , "" )
2021 sslmode := getEnv ("DB_SSLMODE" , "require" )
2122
22- dsn := "host=" + host + " user=" + user + " password=" + password + " dbname=" + dbname + " port=" + port + " sslmode=" + sslmode + " TimeZone=UTC"
23-
23+ log . Println ( "Connecting to database with DSN:" , dsn )
24+
2425 database , err := gorm .Open (postgres .Open (dsn ), & gorm.Config {})
2526 if err != nil {
26- return err
27+ return fmt . Errorf ( "failed to connect to database: %w" , err )
2728 }
2829
2930 sqlDB , err := database .DB ()
3031 if err != nil {
31- return err
32+ return fmt . Errorf ( "failed to get database instance: %w" , err )
3233 }
3334
3435 sqlDB .SetMaxIdleConns (10 )
3536 sqlDB .SetMaxOpenConns (100 )
3637 sqlDB .SetConnMaxLifetime (time .Hour )
3738
38- // Make sure to include all models to migrate here
39+ // Make sure to include all models to migrate here
3940 err = database .AutoMigrate (& User {})
4041 if err != nil {
41- log .Printf ("Failed to migrate database: %v" , err )
42- return err
42+ return fmt .Errorf ("failed to migrate database: %w" , err )
4343 }
4444
4545 DB = database
4646 log .Println ("Database connected successfully" )
47+ return nil
4748}
4849
4950func getEnv (key , defaultValue string ) string {
0 commit comments