Files
wyndham-ARR/DATABASE_CONVERSATION_HANDOFF.md
2026-07-29 16:38:05 +08:00

163 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ARR 数据库专项对话交接
更新时间2026-07-28
用途:让其他 Codex 对话安全接手当前数据库、查询数据或继续后端接线。
安全本文不包含数据库密码、OSS 凭据或真实住客行值。
## 1. 当前已完成状态
远程测试 PostgreSQL 已完成 ARR 数据落库 MVP v1并已从旧 LAN 测试库完整迁移及复验:
- 主机/端口:`<ARR_DB_HOST>:5432`
- 数据库:`booking_test`
- 当前测试用户:`<TEST_DB_OWNER>`(数据库 owner、非超级用户仍不是生产最小权限应用账号
- 当前受控配置:`/path/to/private/booking-test-db.env`,权限 `0600`
- schema`ingestion``booking``finance`
- 当前迁移:`008_arr_mvp_v1_rebuild.sql`
旧 LAN 源库 `<LEGACY_DB_HOST>:5433/booking_test` 未修改、未删除,只作为临时回退;对应配置是 `/path/to/private/booking-test-lan-db.env`。后续应用和查询默认使用远程配置,不要误用旧配置写入新数据。
当前数据:
- 预订 MD867 条来源行、348 个不同 Group Code、122 个重复 Group Code、867 个 current room items
- Finance 合成日报2026-07-27 共 3 条 source recordretained/duplicate/excluded 各 1
- current 正式事实1 行;月报、渠道明细、公司报表投影各 1 行;
- 样例 `LT260720GAA` 可查询到 `DBL × 1`
- 总价样例:`1800 × 1 × 3 = 5400`
## 2. 接手时按顺序读取
1. `DATABASE_CONVERSATION_HANDOFF.md`
2. `database/APPLIED_MIGRATIONS.md`
3. `database/REMOTE_MIGRATION_20260728.md`
4. `DATABASE_SCHEMA_DICTIONARY.md`
5. `DATABASE_ERD.md`
6. `DATABASE_PERSISTENCE_PLAN.md`
7. `database/008_arr_mvp_v1_rebuild.sql`
8. `.planning/arr_mvp_v1_database_rebuild/task_plan.md`(本机工作记录,不随仓库发布)
9. `.planning/arr_mvp_v1_database_rebuild/findings.md`(本机工作记录,不随仓库发布)
10. `.planning/arr_mvp_v1_database_rebuild/progress.md`(本机工作记录,不随仓库发布)
涉及日报处理时再读 `DATA_PROCESSING_HANDOFF.md`;涉及看板/API 时再读 `FRONTEND_HANDOFF.md`
## 3. 已冻结的责任边界
- Agent/Skill 负责业务识别、过滤、去重、定价和结构化输出。
- ARR 后端负责重新校验并通过 `arr_ingestion` 单事务写库。
- Agent/SuperAgent 不得获得数据库账号,不得直接 DML。
- PostgreSQL 保存预订事实、全部日报 outcome、current 指针和工件血缘。
- 月报、渠道明细、渠道 BI 和公司 10 日表由普通程序查询数据库生成,不使用旧 `report_versions`
- 预订只提供 Booking RoomFinance 提供日期、晚数、实际房数和金额。
- Group Code 关联只使用规范化 `RES_COMMENT`,不用 `BLOCK_CODE`
## 4. 推荐只读查询
按 Group Code 查原始预订房型汇总:
```sql
SELECT group_code_key, booking_room, total_booking_rooms, source_row_count
FROM booking.v_group_booking_rooms
WHERE group_code_key = upper(btrim('LT260720GAA'));
```
查月报数据源:
```sql
SELECT *
FROM finance.v_monthly_report_rows
WHERE business_date BETWEEN DATE '2026-07-01' AND DATE '2026-07-31'
ORDER BY business_date, daily_record_id;
```
查渠道明细:
```sql
SELECT *
FROM finance.v_channel_details
WHERE business_date BETWEEN DATE '2026-07-01' AND DATE '2026-07-31'
ORDER BY business_date, daily_record_id;
```
查公司 10 日表源:
```sql
SELECT *
FROM finance.v_company_report_source
WHERE departure BETWEEN DATE '2026-07-01' AND DATE '2026-07-10'
ORDER BY departure, daily_record_id;
```
追溯全部 outcome
```sql
SELECT business_date, source_sequence, outcome, decision_codes,
duplicate_of_record_id, booking_source_match_status
FROM finance.v_daily_processing_audit
WHERE business_date = DATE '2026-07-27'
ORDER BY source_sequence;
```
普通业务查询优先使用这些视图;不要直接从 `daily_records` 忘记过滤 current/retained。
## 5. 应用连接方式
应用代码使用 DSN 环境变量不把密码放进源码、Prompt、日志或浏览器
- 写入:`ARR_DATABASE_URL`
- 看板:`DASHBOARD_DATABASE_URL`,缺省回退 `ARR_DATABASE_URL`
- 月报程序:`MONTHLY_REPORT_DATABASE_URL`,缺省回退 `ARR_DATABASE_URL`
- 公司报表:`COMPANY_REPORT_DATABASE_URL`,缺省回退 `ARR_DATABASE_URL`
当前本机测试可由后端安全读取 `booking-test-db.env` 并构造连接;前端 JavaScript 绝不能读取该文件。
## 6. 写入入口
日报 structured-result 不应由另一个 Agent 手写 SQL。正确入口
```text
DeliveryEnvelope 1.0
→ arr_ingestion.validation.DeliveryValidator
→ arr_ingestion.service.IngestionService
→ arr_ingestion.postgres.PostgresIngestionRepository
```
预订行级结果使用:
- JSON Schema`database/contracts/booking-row-parse-result.schema.json`
- fixture 导入器:`booking_ingestion/`
写入前必须确认连接的 `current_database()``booking_test`,并使用事务、幂等 key 和 hash 门禁。
## 7. 当前可恢复性
本次远程迁移前的权威完整备份位于:
`<PRIVATE_BACKUP_ROOT>/booking_test_pre_remote_migration_20260728T180747+0800`
manifest SHA-256`db8ca84fed52123d10151b475aca31659be237c6e7d513484e4f25b1d9a89c4d`。旧 LAN 源库也保持原状,观察期内可作回退核对。
没有用户明确授权时不执行恢复、清库、DROP、补跑 001007 或重跑 008。
## 8. 可复制到另一个对话
```text
这是 ARR 项目的数据处理/数据库接线任务。请使用 planning-with-files并先完整读取
1. DATABASE_CONVERSATION_HANDOFF.md
2. database/APPLIED_MIGRATIONS.md
3. DATABASE_SCHEMA_DICTIONARY.md
4. DATABASE_ERD.md
5. DATA_PROCESSING_HANDOFF.md
目标测试库固定为 <ARR_DB_HOST>:5432/booking_test本机受控配置是
/path/to/private/booking-test-db.env。
<LEGACY_DB_HOST>:5433/booking_test 及 booking-test-lan-db.env 仅作为临时回退,不要继续写入。
数据库 008 已执行并验收,不要重建或重导。查询请使用 booking/finance 只读视图;
写入 structured-result 必须走 arr_ingestion 的 ARR 后端重验与事务 repositoryAgent 不直接写数据库。
不要输出密码、OSS 凭据或真实住客明细。
```
## 9. 生产说明
当前只是远程测试库。上线前必须单独确认生产环境、创建最小权限角色、接正式 OSS/Secret、清理合成 fixture 并做恢复演练;不能默认“地址不变、清空测试数据”就等于生产上线。