Go-Back-Skeleton/database/migrations/main.go
2024-08-31 19:01:33 +02:00

49 lines
802 B
Go

package migrations
import (
"context"
"embed"
"fmt"
"log"
"github.com/dhax/go-base/database"
"github.com/uptrace/bun/migrate"
)
//go:embed *.sql
var sqlMigrations embed.FS
var Migrations = migrate.NewMigrations()
func init() {
if err := Migrations.Discover(sqlMigrations); err != nil {
panic(err)
}
}
// Migrate runs all migrations
func Migrate() {
db, err := database.DBConn()
if err != nil {
log.Fatal(err)
}
defer db.Close()
migrator := migrate.NewMigrator(db, Migrations)
err = migrator.Init(context.Background())
if err != nil {
log.Fatal(err)
}
group, err := migrator.Migrate(context.Background())
if err != nil {
log.Fatal(err)
}
if group.ID == 0 {
fmt.Printf("there are no new migrations to run\n")
} else {
fmt.Printf("migrated to %s\n", group)
}
}