diff --git a/src/db/connection.rs b/src/db/connection.rs index d937d36..83545f6 100644 --- a/src/db/connection.rs +++ b/src/db/connection.rs @@ -32,7 +32,19 @@ impl std::error::Error for DbError {} impl From for DbError { fn from(err: PgError) -> Self { - DbError::new(format!("Postgres-Fehler: {err}")) + if let Some(db_err) = err.as_db_error() { + let code = db_err.code(); + let message = db_err.message(); + let detail = db_err.detail().unwrap_or_default(); + let hint = db_err.hint().unwrap_or_default(); + + DbError::new(format!( + "Postgres-Fehler: {} (SQLSTATE: {}, Detail: {}, Hint: {})", + message, code, detail, hint + )) + } else { + DbError::new(format!("Postgres-Fehler (Client): {err}")) + } } }