fix(deploy): #2129 watchtower 自动部署兜底幂等 alembic 迁移 #2129
Merged
xiaoxia
merged 1 commits from 2026-10-01 20:12:49 +08:00
fix/2129-watchtower-auto-migrate into develop
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
45f98b269a |
fix(deploy): #2129 watchtower 自动部署兜底幂等执行 alembic 迁移
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m4s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m47s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 22s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m46s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m27s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Style (pull_request) Successful in 9m18s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 12m27s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 16m22s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 11m14s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 20m50s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 36s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 2m28s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 38m0s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 2s
根因: watchtower 拉取新镜像后只 restart 容器,不会跑 deploy 脚本里的
`alembic upgrade head`;staging/prod 关闭了 AUTO_CREATE_SCHEMA,
_ensure_viral_video_columns 不会执行,导致新列(copy_result/voice_id/
video_ratio/video_model)缺失,POST analyze-images 与 GET history 全部 500。
修复:
- 新增 API 容器 entrypoint-api.sh:容器启动先幂等 alembic upgrade head,
失败仅告警不阻塞 uvicorn;支持显式 CMD 透传(CI 用 docker run/
compose run 传 sh -c '...' 时行为不变)。
- Worker 容器 entrypoint-worker.sh 同步加 alembic 步骤,避免 worker 先
于 API 启动时 Celery task 读新列报错。
- 修复 worker.Dockerfile 漏 COPY alembic/(只有 alembic.ini 没有 env.py/
versions,alembic 命令无法执行)。
- api.Dockerfile 用 ENTRYPOINT 替换原 CMD,entrypoint 内部 exec uvicorn。
tts/presets 401 由前端裸 fetch 未带 Bearer token 导致,已在 #2128
(
|