wrap postgres errors

This commit is contained in:
nkanaev
2026-06-13 15:11:55 +01:00
parent 7b5c77f622
commit 3b42d8c703

View File

@@ -2,6 +2,7 @@ package postgres
import ( import (
"database/sql" "database/sql"
"fmt"
"log" "log"
) )
@@ -15,7 +16,7 @@ func migrate(db *sql.DB) error {
if _, err := db.Exec( if _, err := db.Exec(
`create table if not exists schema_version (version bigint primary key)`, `create table if not exists schema_version (version bigint primary key)`,
); err != nil { ); err != nil {
return err return fmt.Errorf("create schema_version table: %w", err)
} }
var version int64 var version int64
@@ -23,7 +24,7 @@ func migrate(db *sql.DB) error {
`select coalesce(max(version), 0) from schema_version`, `select coalesce(max(version), 0) from schema_version`,
).Scan(&version) ).Scan(&version)
if err != nil { if err != nil {
return err return fmt.Errorf("read schema version: %w", err)
} }
if version >= maxVersion { if version >= maxVersion {
@@ -37,12 +38,12 @@ func migrate(db *sql.DB) error {
tx, err := db.Begin() tx, err := db.Begin()
if err != nil { if err != nil {
return err return fmt.Errorf("migration %d begin tx: %w", v, err)
} }
if err := migrations[v-1](tx); err != nil { if err := migrations[v-1](tx); err != nil {
tx.Rollback() tx.Rollback()
return err return fmt.Errorf("migration %d: %w", v, err)
} }
if _, err := tx.Exec( if _, err := tx.Exec(
@@ -50,11 +51,11 @@ func migrate(db *sql.DB) error {
on conflict do nothing`, v, on conflict do nothing`, v,
); err != nil { ); err != nil {
tx.Rollback() tx.Rollback()
return err return fmt.Errorf("migration %d record version: %w", v, err)
} }
if err := tx.Commit(); err != nil { if err := tx.Commit(); err != nil {
return err return fmt.Errorf("migration %d commit: %w", v, err)
} }
log.Printf("[migration:%d] done", v) log.Printf("[migration:%d] done", v)