"""add transfer retry fields Revision ID: b1c2d3e4f5a6 Revises: a1b2c3d4e5f6 Create Date: 2026-05-23 17:15:00.000000 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = 'b1c2d3e4f5a6' down_revision: Union[str, None] = 'a1b2c3d4e5f6' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column('pay_transfer', sa.Column('retry_count', sa.Integer(), nullable=False, server_default='0', comment='反查重试次数')) op.add_column('pay_transfer', sa.Column('next_retry_at', sa.DateTime(), nullable=True, comment='下次反查时间')) op.execute(""" CREATE INDEX idx_transfer_retry ON pay_transfer (next_retry_at) WHERE status = 'DEALING' AND retry_count < 4 """) def downgrade() -> None: op.execute("DROP INDEX IF EXISTS idx_transfer_retry") op.drop_column('pay_transfer', 'next_retry_at') op.drop_column('pay_transfer', 'retry_count')