"""单设备登录拆分设备类型 + 用户级覆盖 Revision ID: 20260813_split_device_type Revises: 20260813_token_version Create Date: 2026-08-13 12:00:00.000000 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '20260813_split_device_type' down_revision = '20260813_token_version' branch_labels = None depends_on = None def upgrade(): # 拆分为按设备类型管理 op.add_column('users', sa.Column('pc_token_version', sa.Integer(), nullable=False, server_default='0')) op.add_column('users', sa.Column('mobile_token_version', sa.Integer(), nullable=False, server_default='0')) op.drop_column('users', 'token_version') # 用户级覆盖:None=跟随全局, True=强制启用, False=强制禁用 op.add_column('users', sa.Column('single_device_login_override', sa.Boolean(), nullable=True)) def downgrade(): op.add_column('users', sa.Column('token_version', sa.Integer(), nullable=False, server_default='0')) op.drop_column('users', 'single_device_login_override') op.drop_column('users', 'mobile_token_version') op.drop_column('users', 'pc_token_version')