0044_role_password.py 1.1 KB

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