# PostgreSQL 启动连接检查 日期:2026-10-17 ## 已批准目标 用户要求在 main.go 中通过 sqlx 查询数据库信息,检查尚无业务表的数据库连接。 查询只读取 current_database()、current_user、version(),不依赖业务表,不执行 DDL。 ## 实施范围 1. 保留当前工作区所有用户改动,仅在 cmd/lyra/main.go 中注册项目已选定的 pgx stdlib 驱动,使用带超时的连接及 GetContext 查询,输出数据库信息。 2. 通过 go.mod/go.sum 加入 pgx/v5/stdlib 所需依赖;etc/lyra.toml 仅将 driver 的 postgres 改为 pgx,与驱动注册名保持一致,不读出或改动敏感配置。 3. 补充数据库连接关闭;不重构配置加载、不实现 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 ./...` 均通过,未连接真实数据库。 - 最终安全校正:连接与查询失败时只记录固定的阶段提示,不直接输出驱动原始 错误,避免连接串解析错误意外携带敏感配置。