Files
soft_usite/migrations/migrate.go
T
2025-04-18 07:38:32 -05:00

64 lines
1.4 KiB
Go

package migrations
import (
"fmt"
"log"
"time"
"github.com/sujit-baniya/fiber-boilerplate/app"
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
// Session structure for managing sessions
type Session struct {
ID uint `gorm:"primaryKey"`
SessionID string `gorm:"unique;not null"`
Data string `gorm:"type:text"`
CreatedAt time.Time
UpdatedAt time.Time
ExpireAt time.Time
}
// Migrate performs the database migrations
func Migrate() {
log.Println("Initiating migration...")
// Migrate the main application models
if err := app.Http.Database.DB.Migrator().AutoMigrate(
&models.Roles{},
&models.Users{},
&models.Modules{},
&models.Submodules{},
&models.Inicio{},
&models.TipoServidor{},
&models.TipoDb{},
&models.Servidor{},
&models.ConxDb{},
&models.ConxSsh{},
&models.ProvServidor{},
&models.QrVcard{},
&models.OssApi{},
); err != nil {
log.Fatalf("Error during main migration: %v", err)
}
// Open (or create) a SQLite database for sessions
db, err := gorm.Open(sqlite.Open("session.db"), &gorm.Config{})
if err != nil {
log.Fatalf("Error connecting to the database: %v", err)
return
}
// Migrate the Session structure
if err := db.AutoMigrate(&Session{}); err != nil {
log.Fatalf("Error migrating session database: %v", err)
return
}
fmt.Println("Session database created and table migrated successfully.")
log.Println("Migration Completed...")
}