Files
tp/main_dc/yalarba/api_tp/pkg/database/postgres.go
T
valitovgaziz 7335eb5aa8 modified: main_dc/yalarba/api_tp/internal/handlers/auth.go
modified:   main_dc/yalarba/api_tp/internal/handlers/oauth.go
	modified:   main_dc/yalarba/api_tp/internal/handlers/oauth_yandex.go
	modified:   main_dc/yalarba/api_tp/internal/models/user.go
	modified:   main_dc/yalarba/api_tp/internal/repository/user_repository.go
	modified:   main_dc/yalarba/api_tp/internal/service/user_service.go
	modified:   main_dc/yalarba/api_tp/internal/utils/oauth_utils.go
	modified:   main_dc/yalarba/api_tp/pkg/database/postgres.go
change naming for user into api
2025-11-17 21:06:40 +05:00

38 lines
971 B
Go

package database
import (
"fmt"
"log"
"api_tp/internal/config"
"api_tp/internal/models"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func NewPostgresConnection(cfg *config.Config) (*gorm.DB, error) {
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=UTC",
cfg.DBHost, cfg.DBUser, cfg.DBPassword, cfg.DBName, cfg.DBPort)
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
return nil, fmt.Errorf("failed to connect to database: %w", err)
}
// Автомиграция
if err := autoMigrate(db); err != nil {
return nil, err
}
log.Println("Successfully connected to database")
return db, nil
}
func autoMigrate(db *gorm.DB) error {
// автоматические миграции GORM
return db.AutoMigrate(
&models.UserT{},
&models.OAuthProvider{},
// другие модели...
)
}