# ERR-20260520-005: slot DB 空时跑议程 migration FK 全炸 —— 因为整个 slot 需要完整初始化

## 症状

议程 v1.0 完成实现 + 测试后，想在 slot-1 浏览器手测。
跑 `migration.sql | docker exec psql` 直接报：

```
ERROR: relation "platform_iam.users" does not exist
ERROR: relation "corp_hr.organizations" does not exist
ERROR: relation "platform_meeting_attendance.meetings" does not exist
```

进一步 `\dn` 显示 schema 都在，但 `\dt platform_iam.users` "Did not find any relation"。

## 根因

slot-1 worktree 用的 PG database `ffws_wt_slot_1`：
- 之前 SSO 工作流（5/19）用过这个 slot，当时 init:itadmin 跑成功
- 但 SSO 任务结束后**某个清理动作把表全删了 / 或 worktree pool 自动 reset 了 schema**
- schema 容器（`platform_iam` / `corp_hr` 等）还在，但表全没

议程 migration **不是完整初始化脚本**，它的 FK 引用 `platform_iam.users` 等**应该已经存在**
的表 —— 只有跑过所有 historical migration（或 db push）的库才有这些表。

## 修法

跑完整 `prisma db push` 把整套 schema 推到 slot-1 DB：

```bash
cd backend
set -a && source .env && set +a
npx prisma db push --skip-generate --accept-data-loss
npx prisma generate
npm run db:seed
npm run init:itadmin
```

`db push` vs `migrate deploy` 的取舍：
- `migrate deploy` 跑历史 migration 链，第一个 migration 就报 `type "robot_manager.RobotStatus"
  does not exist` —— 历史 migration 间有 enum 跨 schema 依赖，初始化空 DB 时不健壮
- `db push` 按 current schema 直接 sync，**不走 migration history**，dev 环境最稳

⚠️ 仅 dev / test DB 用 `db push`。**production / staging 绝不用 db push**。

## 防御

1. **AI 默认要先验证 slot DB 状态**，不要直接跑 feature migration。验证三连：
   ```bash
   docker exec <pg_container> psql -U <user> -d <db> -c "\dt platform_iam.users"
   # 不存在 → 需完整初始化
   ```
2. **slot 在 pool 里**，长期不用容易被 reset，重新使用前默认要求完整 `db push + seed + init:itadmin`。
3. 文档化"slot 完整初始化命令组"到 `scripts/dev/agent-pool/` —— 当前每次都要从 ad-hoc
   命令拼，浪费时间。

## 关联

- 工单：议程 v1.0
- agent-pool slot 状态管理：`docs/standards/10-agent-pool.md`
- 类似坑：无，但 slot 状态不可预期是个 pool design 通病
