"""scope signal url dedupe to run Revision ID: 202607081730 Revises: 202607081700 Create Date: 2026-07-08 17:30:00 """ from typing import Sequence, Union from alembic import op revision: str = "202607081730" down_revision: Union[str, None] = "202607081700" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # 信号按运行批次保存;同一链接跨运行保留,便于追踪每次日报实际产出。 op.drop_constraint("uq_signals_source_url_hash", "signals", type_="unique") op.create_unique_constraint( "uq_signals_run_source_url_hash", "signals", ["run_id", "source_url_hash"], ) def downgrade() -> None: # 回滚时恢复全局链接唯一约束,迁移链保持可逆。 op.drop_constraint("uq_signals_run_source_url_hash", "signals", type_="unique") op.create_unique_constraint("uq_signals_source_url_hash", "signals", ["source_url_hash"])