"""strategy 表(M8.3 策略持久化) Revision ID: e1f2a3b4c5d6 Revises: d8e0b2f3c4d5 Create Date: 2026-09-09 """ from __future__ import annotations from collections.abc import Sequence import sqlalchemy as sa from alembic import op revision: str = "e1f2a3b4c5d6" down_revision: str | None = "d8e0b2f3c4d5" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: op.create_table( "strategy", sa.Column("id", sa.String(length=32), nullable=False), sa.Column("name", sa.String(length=64), nullable=False), sa.Column("description", sa.String(length=300), nullable=False), sa.Column("spec_type", sa.String(length=16), nullable=False), sa.Column("config_json", sa.Text(), nullable=False), sa.Column("version", sa.String(length=16), nullable=False), sa.Column("created_at", sa.DateTime(), nullable=False), sa.PrimaryKeyConstraint("id"), sa.UniqueConstraint("name", name="uq_strategy_name"), ) def downgrade() -> None: op.drop_table("strategy")