Files
oslstats/internal/db/migrations/20250124000001_initial_schema.go
2026-02-14 19:48:59 +11:00

48 lines
966 B
Go

package migrations
import (
"context"
"git.haelnorr.com/h/oslstats/internal/db"
"github.com/uptrace/bun"
)
func init() {
Migrations.MustRegister(
// UP: Create initial tables (users, discord_tokens)
func(ctx context.Context, conn *bun.DB) error {
// Create users table
_, err := conn.NewCreateTable().
Model((*db.User)(nil)).
Exec(ctx)
if err != nil {
return err
}
// Create discord_tokens table
_, err = conn.NewCreateTable().
Model((*db.DiscordToken)(nil)).
Exec(ctx)
return err
},
// DOWN: Drop tables in reverse order
func(ctx context.Context, conn *bun.DB) error {
// Drop discord_tokens first (has foreign key to users)
_, err := conn.NewDropTable().
Model((*db.DiscordToken)(nil)).
IfExists().
Exec(ctx)
if err != nil {
return err
}
// Drop users table
_, err = conn.NewDropTable().
Model((*db.User)(nil)).
IfExists().
Exec(ctx)
return err
},
)
}