- 使用 pgx/sqlx 建立连接,从环境变量读取数据库密码 - 添加本地 PostgreSQL Compose 配置与初始迁移 - 补充 Goose 操作手册和连接串排错说明
1.7 KiB
1.7 KiB
PostgreSQL 启动连接检查
日期:2026-10-17
已批准目标
用户要求在 main.go 中通过 sqlx 查询数据库信息,检查尚无业务表的数据库连接。 查询只读取 current_database()、current_user、version(),不依赖业务表,不执行 DDL。
实施范围
- 保留当前工作区所有用户改动,仅在 cmd/lyra/main.go 中注册项目已选定的 pgx stdlib 驱动,使用带超时的连接及 GetContext 查询,输出数据库信息。
- 通过 go.mod/go.sum 加入 pgx/v5/stdlib 所需依赖;etc/lyra.toml 仅将 driver 的 postgres 改为 pgx,与驱动注册名保持一致,不读出或改动敏感配置。
- 补充数据库连接关闭;不重构配置加载、不实现 dotenv、不涉及 Goose 或业务表。
分工与证据路径
- fixer:写入范围限定 main.go、go.mod、go.sum、TOML 的 driver 一行; 首次修改检查缩进和换行,保留已有修改。负责 gofmt、go test ./... 与构建验证。
- 父会话:检查新增查询、超时、驱动名与范围,检查无明文凭据及意外文件改动。
- 不打印配置文件完整内容或完整 DSN;不读取 .env.local 或 compose 中的敏感值。
- 不运行服务、不连接真实数据库;编译/测试只证明查询代码可编译和现有测试通过, 实际连接是否成功由用户本地启动后观察查询输出确认。
验收
- 已加入 pgx/v5 v5.11.0 驱动、五秒超时连接与系统信息查询,保留 HTTP 通路。
- fixer 执行
go build ./...、go test ./...均通过,未连接真实数据库。 - 最终安全校正:连接与查询失败时只记录固定的阶段提示,不直接输出驱动原始 错误,避免连接串解析错误意外携带敏感配置。