package migrations import ( "context" "database/sql" "fmt" "github.com/uptrace/bun" ) func init() { migrations.MustRegister(func(ctx context.Context, db *bun.DB) error { return db.RunInTx(ctx, &sql.TxOptions{}, func(ctx context.Context, tx bun.Tx) error { for _, column := range getColumnsToAdd20240506051128() { _, err := tx.ExecContext(ctx, "ALTER TABLE servers ADD ? bigint DEFAULT 0", bun.Safe(column)) if err != nil { return fmt.Errorf("%s: %w", column, err) } } return nil }) }, func(ctx context.Context, db *bun.DB) error { return db.RunInTx(ctx, &sql.TxOptions{}, func(ctx context.Context, tx bun.Tx) error { for _, column := range getColumnsToAdd20240506051128() { _, err := tx.ExecContext(ctx, "ALTER TABLE servers DROP COLUMN ?", bun.Safe(column)) if err != nil { return fmt.Errorf("%s: %w", column, err) } } return nil }) }) } func getColumnsToAdd20240506051128() []string { return []string{ "num_players", "num_inactive_players", "num_tribes", "num_inactive_tribes", } }