Files
oslstats/internal/db/migrations/20260305140000_add_forfeit_support.go
2026-03-05 22:22:32 +11:00

90 lines
1.8 KiB
Go

package migrations
import (
"context"
"git.haelnorr.com/h/oslstats/internal/db"
"github.com/uptrace/bun"
)
func init() {
Migrations.MustRegister(
// UP migration
func(ctx context.Context, conn *bun.DB) error {
// Add is_forfeit column
_, err := conn.NewAddColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("is_forfeit BOOLEAN NOT NULL DEFAULT false").
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Add forfeit_type column
_, err = conn.NewAddColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_type VARCHAR").
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Add forfeit_team column
_, err = conn.NewAddColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_team VARCHAR").
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
// Add forfeit_reason column
_, err = conn.NewAddColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_reason VARCHAR").
IfNotExists().
Exec(ctx)
if err != nil {
return err
}
return nil
},
// DOWN migration
func(ctx context.Context, conn *bun.DB) error {
_, err := conn.NewDropColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_reason").
Exec(ctx)
if err != nil {
return err
}
_, err = conn.NewDropColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_team").
Exec(ctx)
if err != nil {
return err
}
_, err = conn.NewDropColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("forfeit_type").
Exec(ctx)
if err != nil {
return err
}
_, err = conn.NewDropColumn().
Model((*db.FixtureResult)(nil)).
ColumnExpr("is_forfeit").
Exec(ctx)
return err
},
)
}