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{}, &models.VcfVcard{}, &models.DlocalApi{}, // Módulo de Renovaciones &models.Servicio{}, &models.Cliente{}, &models.PlantillaCorreo{}, &models.NotificacionRegla{}, &models.Contrato{}, &models.NotificacionLog{}, &models.SmtpConfig{}, ); 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...") }