refactor: wrap bare errors with context in database package

This commit is contained in:
2026-06-16 10:42:43 +02:00
committed by Milas Holsting
parent ca08af2dbb
commit e170d81652
4 changed files with 12 additions and 9 deletions

View File

@@ -60,7 +60,10 @@ func RunMigrations(sqlDB *sql.DB) error {
}
func RunMigrationsAndFixes(sqlDB *sql.DB) error {
if err := RunMigrations(sqlDB); err != nil {
return err
return fmt.Errorf("run migrations: %w", err)
}
return RunDataFixes(sqlDB)
if err := RunDataFixes(sqlDB); err != nil {
return fmt.Errorf("run data fixes: %w", err)
}
return nil
}

View File

@@ -21,12 +21,12 @@ func RunDataFixes(sqlDB *sql.DB) error {
}
if err := ensureDataFixTable(ctx, sqlDB); err != nil {
return err
return fmt.Errorf("ensure data fix table: %w", err)
}
applied, err := loadAppliedFixes(ctx, sqlDB)
if err != nil {
return err
return fmt.Errorf("load applied data fixes: %w", err)
}
for _, fix := range fixes {
@@ -46,7 +46,7 @@ func RunDataFixes(sqlDB *sql.DB) error {
return fmt.Errorf("data fix %s failed: %w", fix.ID, err)
}
if err := markFixApplied(ctx, sqlDB, fix.ID); err != nil {
return err
return fmt.Errorf("mark data fix %s applied: %w", fix.ID, err)
}
}

View File

@@ -13,7 +13,7 @@ func init() {
Apply: func(ctx context.Context, sqlDB *sql.DB) error {
rows, err := sqlDB.QueryContext(ctx, `SELECT id, username FROM user WHERE avatar_url = ''`)
if err != nil {
return err
return fmt.Errorf("query users missing avatar_url: %w", err)
}
defer func() { _ = rows.Close() }()
@@ -25,12 +25,12 @@ func init() {
for rows.Next() {
var r userRow
if err := rows.Scan(&r.id, &r.username); err != nil {
return err
return fmt.Errorf("scan user missing avatar_url: %w", err)
}
toUpdate = append(toUpdate, r)
}
if err := rows.Err(); err != nil {
return err
return fmt.Errorf("iterate users missing avatar_url: %w", err)
}
for _, u := range toUpdate {

View File

@@ -25,7 +25,7 @@ func init() {
func applyAnimeDurationSecondsBackfill(ctx context.Context, sqlDB *sql.DB) error {
toUpdate, err := listAnimeMissingDurationSeconds(ctx, sqlDB)
if err != nil {
return err
return fmt.Errorf("list anime missing duration_seconds: %w", err)
}
client := jikan.NewClient(config.Config{}, db.New(sqlDB), observability.NewMetrics())