Files
futur-web-app/server/scripts/migration.go
2025-11-03 12:24:01 +02:00

42 lines
788 B
Go

package scripts
import (
"fmt"
"log"
"go-server/internal/config"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
// Define models for migration
type User struct {
ID uint `gorm:"primaryKey"`
Email string `gorm:"uniqueIndex"`
Password string
}
// Migrate function to run database migrations
func Migrate() {
// Load from environment variables or configuration
cfg, err := config.LoadConfig()
if err != nil {
panic(err)
}
dsn := cfg.Database.DSN()
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatalf("Failed to connect to database: %v", err)
}
// AutoMigrate runs the migration
err = db.AutoMigrate(&User{})
if err != nil {
log.Fatalf("Migration failed: %v", err)
}
fmt.Println("Migration completed successfully!")
}