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 { func RunMigrationsAndFixes(sqlDB *sql.DB) error {
if err := RunMigrations(sqlDB); err != nil { 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 { if err := ensureDataFixTable(ctx, sqlDB); err != nil {
return err return fmt.Errorf("ensure data fix table: %w", err)
} }
applied, err := loadAppliedFixes(ctx, sqlDB) applied, err := loadAppliedFixes(ctx, sqlDB)
if err != nil { if err != nil {
return err return fmt.Errorf("load applied data fixes: %w", err)
} }
for _, fix := range fixes { 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) return fmt.Errorf("data fix %s failed: %w", fix.ID, err)
} }
if err := markFixApplied(ctx, sqlDB, fix.ID); err != nil { 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 { Apply: func(ctx context.Context, sqlDB *sql.DB) error {
rows, err := sqlDB.QueryContext(ctx, `SELECT id, username FROM user WHERE avatar_url = ''`) rows, err := sqlDB.QueryContext(ctx, `SELECT id, username FROM user WHERE avatar_url = ''`)
if err != nil { if err != nil {
return err return fmt.Errorf("query users missing avatar_url: %w", err)
} }
defer func() { _ = rows.Close() }() defer func() { _ = rows.Close() }()
@@ -25,12 +25,12 @@ func init() {
for rows.Next() { for rows.Next() {
var r userRow var r userRow
if err := rows.Scan(&r.id, &r.username); err != nil { 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) toUpdate = append(toUpdate, r)
} }
if err := rows.Err(); err != nil { if err := rows.Err(); err != nil {
return err return fmt.Errorf("iterate users missing avatar_url: %w", err)
} }
for _, u := range toUpdate { for _, u := range toUpdate {

View File

@@ -25,7 +25,7 @@ func init() {
func applyAnimeDurationSecondsBackfill(ctx context.Context, sqlDB *sql.DB) error { func applyAnimeDurationSecondsBackfill(ctx context.Context, sqlDB *sql.DB) error {
toUpdate, err := listAnimeMissingDurationSeconds(ctx, sqlDB) toUpdate, err := listAnimeMissingDurationSeconds(ctx, sqlDB)
if err != nil { 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()) client := jikan.NewClient(config.Config{}, db.New(sqlDB), observability.NewMetrics())