feat: prepare ARR for controlled public deployment

This commit is contained in:
Wyndham ARR
2026-07-29 16:38:05 +08:00
commit a701de9f0e
271 changed files with 48472 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
# ARR 测试数据库远程迁移记录
执行日期2026-07-28
状态:完整迁移已提交并验收。
## 范围
- 源:`<LEGACY_DB_HOST>:5433/booking_test`PostgreSQL 15.18
- 目标:`<ARR_DB_HOST>:5432/booking_test`PostgreSQL 15.14
- 目标用户:`<TEST_DB_OWNER>`,数据库 owner非超级用户
- 迁移对象:`ingestion``booking``finance`
- 源库处理:只读,未修改、未删除,继续保留作为临时回退
## 执行内容
- 应用 DDL`database/008_arr_mvp_v1_rebuild.sql`
- DDL SHA-256`a29df928a2bcfca262216a9d53260528374b830266b3285f3687199cb802a530`
- 基础表14
- 视图8
- 同步所有 identity sequence 的 `last_value/is_called`
- 迁移全部现有测试数据、处理审计和工件元数据
## 迁移前备份
- 目录:`<PRIVATE_BACKUP_ROOT>/booking_test_pre_remote_migration_20260728T180747+0800`
- manifest SHA-256`db8ca84fed52123d10151b475aca31659be237c6e7d513484e4f25b1d9a89c4d`
- 备份权限:目录 0700文件 0600
- 内容14 表逐行 gzip JSON、schema/约束/索引/视图/函数/触发器/sequence 元数据、目标空库证据
## 安全执行
1. 只读确认目标 ARR schema 为空,用户为数据库 owner 且具备 CREATE。
2. 在目标执行一次完整 DDL + 全量复制 + 校验 + 强制 ROLLBACK 演练。
3. 第二连接确认演练后目标仍为空。
4. 正式执行相同流程,结构与数据在一个 SERIALIZABLE 事务内提交。
5. 任一步失败都会回滚;未发生部分提交。
## 最终一致性
- 双端结构 signature`0d64002b919d439dbbbbf78d1f5c5fab86d8f815f80dc6225f17a91ab5455e38`
- 双端 14 表内容 hash bundle`42faf898d67b3015e85baf00bbd66a1fa4448d80daa7f5d9d0207a4004fad35c`
- 双端逐表行数和逐表内容 SHA-256全部一致
- identity sequence state全部一致
- 未验证约束0
- 目标 `public` 用户对象0
关键数据计数:
| 表 | 行数 |
|---|---:|
| `booking.source_rows` | 867 |
| `booking.parse_versions` | 867 |
| `booking.room_items` | 867 |
| `booking.current_row_parses` | 867 |
| `finance.daily_versions` | 1 |
| `finance.current_daily_versions` | 1 |
| `finance.daily_records` | 3 |
| `ingestion.artifacts` | 5 |
| `ingestion.processing_runs` | 2 |
Finance outcomeretained、duplicate、excluded_rate_code 各 1。
## 应用验收
使用新远程数据库实际运行:
- 渠道 BI1 个渠道、1 条 retained
- 渠道明细1 行;
- 月报生成源1 行;
- 公司报表1 行Booking Room 为 `【DBL】1`
- Web 日报列表1 条;
- Web 月度数据源投影1 行。
## 当前配置
- 当前测试库配置:`/path/to/private/booking-test-db.env`0600
- 旧 LAN 回退配置:`/path/to/private/booking-test-lan-db.env`0600
文档不保存密码。应用应优先使用新远程配置;在观察期结束前不要删除旧 LAN 库。