# ARR 测试数据库远程迁移记录 执行日期:2026-07-28 状态:完整迁移已提交并验收。 ## 范围 - 源:`:5433/booking_test`,PostgreSQL 15.18 - 目标:`:5432/booking_test`,PostgreSQL 15.14 - 目标用户:``,数据库 owner,非超级用户 - 迁移对象:`ingestion`、`booking`、`finance` - 源库处理:只读,未修改、未删除,继续保留作为临时回退 ## 执行内容 - 应用 DDL:`database/008_arr_mvp_v1_rebuild.sql` - DDL SHA-256:`a29df928a2bcfca262216a9d53260528374b830266b3285f3687199cb802a530` - 基础表:14 - 视图:8 - 同步所有 identity sequence 的 `last_value/is_called` - 迁移全部现有测试数据、处理审计和工件元数据 ## 迁移前备份 - 目录:`/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 outcome:retained、duplicate、excluded_rate_code 各 1。 ## 应用验收 使用新远程数据库实际运行: - 渠道 BI:1 个渠道、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 库。