- 使用 pgx/sqlx 建立连接,从环境变量读取数据库密码 - 添加本地 PostgreSQL Compose 配置与初始迁移 - 补充 Goose 操作手册和连接串排错说明
33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
# 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 ./...` 均通过,未连接真实数据库。
|
|
- 最终安全校正:连接与查询失败时只记录固定的阶段提示,不直接输出驱动原始
|
|
错误,避免连接串解析错误意外携带敏感配置。
|