AgentEvalTool/migrations/versions/f2a9b7c34d18_add_campaign_period_comparisons.py
sinohqb 1e55a21649 feat(comparison): v0.8 周期对比 — 计划指纹自动基线配对、机械指标 diff 与 LLM 演进叙述
正式线活动分析完成后自动链式生成对比;报告抽屉新增「周期对比」区块
(趋势徽章、指标 delta 表、问题演变、建议追踪,无自动基线时手动选择)。
版本号升至 0.8.0。
2026-08-03 13:32:48 +08:00

52 lines
1.9 KiB
Python

"""add campaign_period_comparisons table
Revision ID: f2a9b7c34d18
Revises: c8f5e4b13d26
Create Date: 2026-08-03
"""
from typing import Sequence, Union
import sqlalchemy as sa
import sqlmodel # noqa: F401
from alembic import op
revision: str = "f2a9b7c34d18"
down_revision: Union[str, Sequence[str], None] = "c8f5e4b13d26"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.create_table(
"campaign_period_comparisons",
sa.Column("id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column("campaign_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column("baseline_campaign_id", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column("status", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column("result", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column("model_config_id", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column("error", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column("triggered_by", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column("created_at", sa.DateTime(), nullable=True),
sa.Column("updated_at", sa.DateTime(), nullable=True),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint("campaign_id", name="uq_campaign_period_comparisons_campaign_id"),
)
op.create_index(
"ix_campaign_period_comparisons_campaign_id",
"campaign_period_comparisons",
["campaign_id"],
)
op.create_index(
"ix_campaign_period_comparisons_baseline_campaign_id",
"campaign_period_comparisons",
["baseline_campaign_id"],
)
def downgrade() -> None:
op.drop_index("ix_campaign_period_comparisons_baseline_campaign_id")
op.drop_index("ix_campaign_period_comparisons_campaign_id")
op.drop_table("campaign_period_comparisons")