35 lines
700 B
Go
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")
|
|
}
|