Files
beige/backend/alembic/versions/014_task_status_failed.py
yangqianqian 1b488752e6 B6/B7: failed终态前端可见 + SSE事件链核实
B6 错误态:
- 后端已加 TaskStatus.FAILED + 异常区分重试中/耗尽(014迁移ALTER status ENUM)
- 前端 TaskStatus 类型加 failed
- RecentTasksBar/history STATUS_LABEL 补 failed 标签
- history 页 HISTORY_STATUSES 纳入 failed(否则失败任务前端找不到)
- FatalErrorBanner + useSse error 不再静默丢弃

B7: 核实 SSE(ticket换JWT) + 事件消费链无缺口,标绿

tsc EXIT=0
2026-06-16 12:45:13 +08:00

35 lines
1.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""014 generation_tasks.status ENUM 补 failed 终态B6 错误态)
Revision ID: 014
Revises: 013
Create Date: 2026-06-16
status 是 MySQL ENUM,原7值无失败终态。Celery生成彻底失败(重试耗尽)时
要落 failed,区分"没跑(pending)""跑挂了(failed)"。不补 ENUM 会 Data truncated。
"""
from alembic import op
revision = "014"
down_revision = "013"
branch_labels = None
depends_on = None
_ENUM_WITH_FAILED = (
"ENUM('pending','generating','pending_selection','pending_review',"
"'approved','rejected','archived','failed') NOT NULL DEFAULT 'pending'"
)
_ENUM_ORIG = (
"ENUM('pending','generating','pending_selection','pending_review',"
"'approved','rejected','archived') NOT NULL DEFAULT 'pending'"
)
def upgrade():
op.execute(f"ALTER TABLE generation_tasks MODIFY COLUMN status {_ENUM_WITH_FAILED}")
def downgrade():
# 回退前先把 failed 行归位到 pending,避免越界
op.execute("UPDATE generation_tasks SET status='pending' WHERE status='failed'")
op.execute(f"ALTER TABLE generation_tasks MODIFY COLUMN status {_ENUM_ORIG}")