| 1234567891011121314151617181920212223242526272829303132 |
- package database
- import (
- "fmt"
- "log"
- "github.com/celestia-trace/backend/config"
- "github.com/celestia-trace/backend/models"
- "gorm.io/driver/postgres"
- "gorm.io/gorm"
- )
- var DB *gorm.DB
- // Init initializes the database connection and auto-migrates models
- func Init(cfg *config.Config) {
- 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 {
- log.Fatalf("Failed to connect to database: %v", err)
- }
- // Auto-migrate the User model
- err = db.AutoMigrate(&models.User{})
- if err != nil {
- log.Fatalf("Failed to auto-migrate database: %v", err)
- }
- DB = db
- }
|