refactor: wrap bare errors with context in database package
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user