45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
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",
|
|
}
|
|
}
|