This repository has been archived on 2023-12-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
protect_trans_info/application/migration.go
2023-08-24 23:40:46 +03:00

38 lines
753 B
Go

package application
import (
"context"
"embed"
"fmt"
"github.com/uptrace/bun"
"github.com/uptrace/bun/migrate"
"go.uber.org/zap"
)
//go:embed migrations/*.sql
var migrationFiles embed.FS
func Migrate(ctx context.Context, db *bun.DB, logger *zap.Logger) error {
migrations := migrate.NewMigrations()
if err := migrations.Discover(migrationFiles); err != nil {
return fmt.Errorf("discover migrations: %w", err)
}
migrator := migrate.NewMigrator(db, migrations)
if initErr := migrator.Init(ctx); initErr != nil {
return fmt.Errorf("init migrations: %w", initErr)
}
group, err := migrator.Migrate(ctx)
if err != nil {
return fmt.Errorf("migrate: %w", err)
}
logger.Sugar().Infof("migrated: %s", group.String())
return nil
}