"""Add System-2 pyramiding (做对了往上加仓) bookkeeping to bot_trades. base_size_usd : original notional at open, immutable (NULL → legacy, falls back to size_usd) addon_steps_done : number of pyramid add-ons executed (default 0) Defaults make every existing row behave exactly as before (no add-ons). Revision ID: 013 Revises: 012 Create Date: 2026-05-18 00:00:00.000000 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "013" down_revision: Union[str, None] = "012" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: with op.batch_alter_table("bot_trades") as b: b.add_column(sa.Column("base_size_usd", sa.Float(), nullable=True)) b.add_column(sa.Column("addon_steps_done", sa.Integer(), nullable=False, server_default="0")) def downgrade() -> None: with op.batch_alter_table("bot_trades") as b: b.drop_column("addon_steps_done") b.drop_column("base_size_usd")