package migrate import ( "context" "database/sql" "github.com/pkg/errors" "github.com/pressly/goose/v3" "github.com/riverqueue/river/riverdriver/riverdatabasesql" "github.com/riverqueue/river/rivermigrate" ) func init() { goose.AddMigrationNoTxContext(RiverQueueUp, RiverQueueDown) } func RiverQueueUp(ctx context.Context, db *sql.DB) error { migrator, err := rivermigrate.New(riverdatabasesql.New(db), nil) if err != nil { return errors.Wrap(err, "river migrate up failed") } _, err = migrator.Migrate(ctx, rivermigrate.DirectionUp, &rivermigrate.MigrateOpts{TargetVersion: -1}) return err } func RiverQueueDown(ctx context.Context, db *sql.DB) error { migrator, err := rivermigrate.New(riverdatabasesql.New(db), nil) if err != nil { return errors.Wrap(err, "river migrate down failed") } _, err = migrator.Migrate(ctx, rivermigrate.DirectionDown, &rivermigrate.MigrateOpts{TargetVersion: -1}) return err }