- 使用 pgx/sqlx 建立连接,从环境变量读取数据库密码 - 添加本地 PostgreSQL Compose 配置与初始迁移 - 补充 Goose 操作手册和连接串排错说明
Lyra
链接、分类、设置等资源的后端服务(规划中)。目标结构与技术选型见 docs/architecture.md。
当前状态
已搭建目录骨架、程序入口 main.go 与 HTTP 通路:启动时加载 etc/lyra.toml,
注册 GET /hello(经 httpx.OK 输出响应)并启动 HTTP 服务;路由注册配有
httptest 回归测试,不监听实际端口、不连接数据库。各内部目录的职责与依赖
约束记录在 AGENTS.md 中。数据库迁移 SQL 已就位:migrations/00001_init.sql
(初始函数与三张表),通过手工 goose CLI 执行,操作手册见
docs/goose.md,迁移目录说明见
migrations/README.md;Go 应用侧的数据库连接与
Goose Go 依赖仍未实现,真实业务逻辑同样未实现;架构文档中标注“待新增”的
文件(links 等)尚未创建。
目录职责
| 路径 | 职责 |
|---|---|
cmd/lyra/ |
程序入口:启动、依赖组装、退出清理 |
internal/api/ |
HTTP 请求/响应 DTO,按资源分文件(平铺) |
internal/config/ |
配置定义与加载 |
internal/postgres/ |
PostgreSQL 连接(pgx stdlib,待实现) |
internal/router/ |
路由注册、项目路径前缀(router.go,平铺) |
internal/handler/ |
参数绑定、DTO 转换、响应输出;可按业务分包,服务级简单接口平铺在根包 |
internal/service/ |
业务规则、事务协调;可按业务分包,服务级简单接口平铺在根包 |
internal/model/ |
数据结构定义与数据访问(SQL,平铺) |
internal/httpx/ |
公共响应辅助 |
migrations/ |
Goose SQL 迁移文件(00001 初始迁移已就位) |
docs/ |
架构与计划文档 |
运行
Go 命令在本目录(module 根)下执行;配置路径 etc/lyra.toml 按当前工作目录
解析,换目录运行会找不到配置:
go run ./cmd/lyra # 启动 HTTP 服务,监听地址与端口见 etc/lyra.toml
go test ./... # 含路由回归测试
配置中的 app.env 直接传给 gin.SetMode,仅支持 debug/release/test。
技术栈
已引入 Gin 与 Viper(读取 TOML 配置),go.sum 已生成; PostgreSQL、Squirrel + sqlx(pgx stdlib 驱动)与 Goose 为目标选型,随后续功能引入; 数据库迁移已用独立 goose CLI(v3.29.0)管理,Goose Go 依赖尚未引入。