2025-11-10 00:19:30 +00:00
|
|
|
package database
|
|
|
|
|
|
|
|
|
|
import (
|
2025-11-29 20:32:32 +00:00
|
|
|
"context"
|
2025-11-10 00:19:30 +00:00
|
|
|
"embed"
|
|
|
|
|
|
2025-11-29 20:32:32 +00:00
|
|
|
"github.com/uptrace/bun"
|
2025-11-10 00:19:30 +00:00
|
|
|
"github.com/uptrace/bun/migrate"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
//go:embed migrations/*.sql
|
|
|
|
|
var sqlMigrations embed.FS
|
|
|
|
|
|
2025-11-29 20:32:32 +00:00
|
|
|
// RunMigrations discovers and runs all migrations against the database.
|
|
|
|
|
func RunMigrations(ctx context.Context, db *bun.DB) error {
|
|
|
|
|
migrations := migrate.NewMigrations()
|
|
|
|
|
if err := migrations.Discover(sqlMigrations); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
migrator := migrate.NewMigrator(db, migrations)
|
|
|
|
|
if err := migrator.Init(ctx); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_, err := migrator.Migrate(ctx)
|
|
|
|
|
return err
|
2025-11-10 00:19:30 +00:00
|
|
|
}
|