dcbot/internal/bundb/migrations/20221028073839_groups_add_two_columns.go

48 lines
1.1 KiB
Go
Raw Normal View History

package migrations
import (
"context"
"database/sql"
"fmt"
"gitea.dwysokinski.me/twhelp/dcbot/internal/bundb/internal/model"
"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 {
columns := []string{
"internals",
"barbarians",
}
for _, c := range columns {
if _, err := tx.NewAddColumn().
Model(&model.Group{}).
ColumnExpr("? boolean default false", bun.Safe(c)).
IfNotExists().
Exec(ctx); err != nil {
return fmt.Errorf("couldn't add the %s column: %w", c, 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 {
columns := []string{
"internals",
"barbarians",
}
for _, c := range columns {
if _, err := tx.NewDropColumn().
Model(&model.Group{}).
Column(c).
Exec(ctx); err != nil {
return fmt.Errorf("couldn't drop the %s column: %w", c, err)
}
}
return nil
})
})
}