用途:为 Go Gin 项目接入 PostgreSQL,采用仓储模式把数据库逻辑与 handler、service 分离,并支持在不改动业务逻辑的前提下切换 GORM 与 sqlx。
主要能力:定义仓储接口(在 domain 层声明、在 repository 层实现,实现依赖倒置);GORM 与 sqlx 两种实现;数据库连接池配置(MaxOpenConns、MaxIdleConns、ConnMaxLifetime 等);启动时带指数退避的连接重试;基于 context 的事务传播(WithTx 与 txFromCtx);游标/keyset 分页;golang-migrate 迁移;在 main.go 中完成 repository → service → handler 的依赖注入。
使用方式:在 domain 层定义实体与仓储接口,在 repository 层实现;用 NewGORMDB 或 ConnectWithRetry 建立连接;仓储方法通过 txFromCtx 参与事务,由 service 层用 db.Transaction 编排;从环境变量读取 DATABASE_URL,生产环境 DSN 使用 sslmode=verify-full。
适用场景:为 Gin 项目新增 PostgreSQL、实现仓储模式、编写 GORM/sqlx 查询、配置连接池、运行迁移、编写事务。
限制:资料未提供具体版本要求、性能基准或收费信息;完整 GORM、sqlx、迁移细节需查阅其引用的参考文件与官方文档。