"""角色密码(契约1.53 密码即角色)。 Revision ID: 0044_role_password Revises: 0043_password_reset_request Create Date: 2026-09-23 变更要点(Python 版已废弃不做功能实现,仅保持迁移链同步): 1. sys_user_role 加 password_hash 列:N 个密码对应 N 个角色一一对应, 登录时输入哪个角色的密码即以该角色直接进入; 2. NULL=该角色使用用户级密码(挂 ≥2 角色时恰一个角色可为 NULL); 存量数据不搬迁,全部 NULL=过渡态按 1.46 行为回退。 """ from __future__ import annotations from collections.abc import Sequence import sqlalchemy as sa from alembic import op revision: str = "0044_role_password" down_revision: str | None = "0043_password_reset_request" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: op.add_column( "sys_user_role", sa.Column("password_hash", sa.String(length=255), nullable=True)) def downgrade() -> None: op.drop_column("sys_user_role", "password_hash")