material_manage_system/cmd/migrate/main.go
2026-09-15 16:08:18 +08:00

35 lines
700 B
Go

package main
import (
"context"
"database/sql"
"log"
"os"
_ "github.com/go-sql-driver/mysql"
"github.com/wmms/wmms/pkg/migration"
)
func main() {
dsn := os.Getenv("DB_DSN")
if dsn == "" {
log.Fatal("DB_DSN is required")
}
dir := os.Getenv("MIGRATIONS_DIR")
if dir == "" {
dir = "scripts/migrations"
}
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatalf("open database: %v", err)
}
defer db.Close()
if err := db.PingContext(context.Background()); err != nil {
log.Fatalf("connect database: %v", err)
}
if err := migration.Run(context.Background(), db, dir); err != nil {
log.Fatalf("run migrations: %v", err)
}
log.Print("migrations applied successfully")
}