31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""单设备登录拆分设备类型 + 用户级覆盖
|
|
|
|
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')
|