Migrate poo recorder and align Alembic naming

This commit is contained in:
2026-04-20 11:48:48 +02:00
parent e334df992f
commit 044b47c573
34 changed files with 1138 additions and 31 deletions
+48 -6
View File
@@ -12,6 +12,7 @@
- 建立 Docker / Compose 基础骨架
- 建立 OpenAPI 导出脚本
- 迁入 `location recorder` 第一版
- 迁入 `poo recorder` 第一版
## 数据库配置现状
@@ -25,13 +26,12 @@
其中:
- `location` 模块已经实际接到 `LOCATION_DATABASE_URL`
- `poo` 目前只保留 `POO_DATABASE_URL` 配置占位,等待模块迁入
- `poo` 模块已经实际接到 `POO_DATABASE_URL`
## 当前阶段未做内容
- 未迁移 TickTick 业务逻辑
- 未迁移 Home Assistant 业务逻辑
- 未迁移 poo records
- 未迁移 Home Assistant inbound / outbound 之外的其他业务逻辑
- 未实现真实 OAuth 流程
- 未做数据迁移
@@ -74,15 +74,57 @@ CREATE TABLE location (
- DB 尚未被 Alembic 接管时拒绝启动
- DB revision 与当前应用预期不一致时拒绝启动
## Poo recorder 说明
当前 Python 项目已经接入:
- `POST /poo/record`
- `GET /poo/latest`
并对齐当前真实 baseline schema
```sql
CREATE TABLE poo_records (
timestamp TEXT NOT NULL,
status TEXT NOT NULL,
latitude REAL NOT NULL,
longitude REAL NOT NULL,
PRIMARY KEY (timestamp)
);
```
历史上 legacy Go 实现使用:
```sql
PRAGMA user_version = 1;
```
当前已经补上与 location 一致风格的 Alembic baseline / 接管策略:
- `poo_records` 当前 schema 被视为 Alembic baseline
- 新数据库通过 `alembic_poo upgrade head` 初始化
- 已有 legacy SQLite 数据库通过 `alembic stamp` 接管
- `PRAGMA user_version = 1` 仅保留为历史事实,不再作为新的主 migration 机制
同时这一轮明确移除了 Notion
- 不迁 Notion sync
- 不迁 Notion adapter
- `POST /poo/record` 不再依赖 `tableId` 才能写入
详见:
- [poo-recorder.md](poo-recorder.md)
## 后续建议顺序
建议继续沿用既有迁移文档中的顺序:
1. 先迁 `location recorder`
2. 再迁 Home Assistant 出站适配层
3. 再迁 TickTick adapter
4. 再迁 Home Assistant 命令网关
5. 最后迁 `poo recorder`
3. 再迁 Home Assistant 命令网关
4. 再迁 `poo recorder`
5. 最后迁 TickTick adapter
## 开发约束提醒