feat(lyra): 接入 PostgreSQL 与 Goose 迁移

- 使用 pgx/sqlx 建立连接,从环境变量读取数据库密码
- 添加本地 PostgreSQL Compose 配置与初始迁移
- 补充 Goose 操作手册和连接串排错说明
This commit is contained in:
2026-10-17 15:09:46 +08:00
parent 3f16384376
commit 8c0c9978e5
15 changed files with 580 additions and 33 deletions
+9 -4
View File
@@ -8,8 +8,12 @@
已搭建目录骨架、程序入口 `main.go` 与 HTTP 通路:启动时加载 `etc/lyra.toml`,
注册 `GET /hello`(经 `httpx.OK` 输出响应)并启动 HTTP 服务;路由注册配有
httptest 回归测试,不监听实际端口、不连接数据库。各内部目录的职责与依赖
约束记录在 `AGENTS.md` 中。数据库访问、迁移文件与真实业务逻辑均未实现;
架构文档中标注“待新增”的文件(links 等)尚未创建。
约束记录在 `AGENTS.md` 中。数据库迁移 SQL 已就位:`migrations/00001_init.sql`
(初始函数与三张表),通过手工 goose CLI 执行,操作手册见
[docs/goose.md](docs/goose.md),迁移目录说明见
[migrations/README.md](migrations/README.md);Go 应用侧的数据库连接与
Goose Go 依赖仍未实现,真实业务逻辑同样未实现;架构文档中标注“待新增”的
文件(links 等)尚未创建。
## 目录职责
@@ -24,7 +28,7 @@ httptest 回归测试,不监听实际端口、不连接数据库。各内部
| `internal/service/` | 业务规则、事务协调;可按业务分包,服务级简单接口平铺在根包 |
| `internal/model/` | 数据结构定义与数据访问(SQL,平铺) |
| `internal/httpx/` | 公共响应辅助 |
| `migrations/` | Goose SQL 迁移文件(暂无) |
| `migrations/` | Goose SQL 迁移文件(00001 初始迁移已就位) |
| `docs/` | 架构与计划文档 |
## 运行
@@ -42,4 +46,5 @@ go test ./... # 含路由回归测试
## 技术栈
已引入 Gin 与 Viper(读取 TOML 配置),go.sum 已生成;
PostgreSQL、Squirrel + sqlx(pgx stdlib 驱动)与 Goose 为目标选型,随后续功能引入。
PostgreSQL、Squirrel + sqlx(pgx stdlib 驱动)与 Goose 为目标选型,随后续功能引入;
数据库迁移已用独立 goose CLI(v3.29.0)管理,Goose Go 依赖尚未引入。