# 公共数据库对象所有权与发布门禁 ## 对象所有权 | 数据库对象 | 唯一迁移所有者 | 下游接入方式 | |---|---|---| | `tb_outbox_event` 及公共索引、约束 | `tech-public-foundation` | 依赖公共 Outbox Port,禁止复制 DDL | | `tb_system_config` 及公共索引、约束 | `tech-public-foundation` | 注册业务 Key,禁止复制 DDL 或创建任意 Key | | Audit Event、Integration Log | `tech-global-audit` | 公共基础只依赖审计 Port | | 通知、业务任务、业务失败明细 | 对应业务 PRD | 复用公共契约,保留自己的业务表 | ## 门禁执行 迁移和放量前运行前置检查,迁移后运行后置检查。检查只读取 PostgreSQL,重复执行不会写入业务事实;输出仅包含稳定错误码、对象名和计数,不输出事件载荷或配置值。 前置检查阻断以下情况:依赖迁移版本不足或处于脏状态、已有对象定义冲突、重复事件 ID 或配置 Key、必填字段空值、非法状态/类型、未投递事件和过期租约。后置检查还要求公共表及约定字段已经存在,并执行约束、索引和读写冒烟验证。 ## 发布与回滚边界 发布顺序固定为:迁移与检查、兼容 API、Relay/Worker、依赖消费者、前端。迁移异常、Outbox 持续积压或租约大量过期、配置读写不一致、访问日志脱敏回归失败、关键任务无法恢复时停止放量。 尚未产生事实的新结构可在验证后回滚。公共表已经保存 Outbox 或配置事实后,必须先停止生产者和 Relay,保留事实并向前修复;禁止通过降级删表清理。