Documentation
¶
Overview ¶
Package database 负责建立并持有数据库连接。
组合方式:pgx(stdlib 适配)提供 *sql.DB,bun 在其上提供查询构建器。 选 pgx 而非 bun 自带的 pgdriver,是因为 pgx 是 Go 生态里最完整的 PG 驱动, 且 goose 也基于 database/sql,两者共用同一连接池。
Index ¶
Constants ¶
View Source
const ( CodeUniqueViolation = "23505" CodeForeignKeyViolation = "23503" CodeCheckViolation = "23514" )
PostgreSQL SQLSTATE 约束冲突码。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ConstraintViolation ¶
ConstraintViolation 描述一次约束冲突:SQLSTATE 码与触发的约束名。
约束名来自迁移里的显式命名,业务层据此把「哪个唯一键冲突了」翻译成具体错误, 而不是笼统的「已存在」。
func AsConstraintViolation ¶
func AsConstraintViolation(err error) (*ConstraintViolation, bool)
AsConstraintViolation 从错误链中提取 PostgreSQL 的唯一、外键或检查约束冲突。
优先识别 pgx 的结构化错误;若驱动错误被转成了纯文本(极少见),回退到匹配 SQLSTATE 码, 此时约束名为空。
Click to show internal directories.
Click to hide internal directories.