"""Пользователь: настройки витрины истории партий в профиле. Идемпотентна: на свежей БД столбцы создаёт 0001 (create_all из актуальных моделей) -> no-op; на существующей БД добавляет столбцы. render_as_batch включён в env.py (для SQLite). Revision ID: 0011_user_history_prefs Revises: 0010_user_favorite_faction Create Date: 2026-09-07 """ from typing import Sequence, Union import sqlalchemy as sa from sqlalchemy import inspect from alembic import op revision: str = "0011_user_history_prefs" down_revision: Union[str, None] = "0010_user_favorite_faction" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: bind = op.get_bind() insp = inspect(bind) cols = {c["name"] for c in insp.get_columns("users")} with op.batch_alter_table("users") as b: if "history_mode" not in cols: b.add_column( sa.Column( "history_mode", sa.String(8), nullable=False, server_default="all" ) ) if "history_detail" not in cols: b.add_column( sa.Column( "history_detail", sa.String(8), nullable=False, server_default="compact" ) ) def downgrade() -> None: bind = op.get_bind() insp = inspect(bind) cols = {c["name"] for c in insp.get_columns("users")} with op.batch_alter_table("users") as b: if "history_detail" in cols: b.drop_column("history_detail") if "history_mode" in cols: b.drop_column("history_mode")