0034_role_anchor_self.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """角色管理范围锚点存量统一置「跟随用户设置」(契约1.31)。
  2. Revision ID: 0034_role_anchor_self
  3. Revises: 0033_role_upload_permission
  4. Create Date: 2026-09-13
  5. 变更要点:
  6. 1. sys_role.managed_org_id 全部行统一置 0(SELF 哨兵=跟随用户设置):
  7. 角色配置界面暂时移除「机构及用户管理范围」下拉后,范围判定统一
  8. 回落用户级管理范围(sys_user.managed_org_id,契约1.30),NULL(全局)
  9. 与固定锚点ID一并收敛为 0;
  10. 2. DB 列保留不删(存量语义仅界面收敛,恢复下拉即还原三态);
  11. 3. 降级有损拒绝:原始锚点值无法还原。
  12. """
  13. from __future__ import annotations
  14. from collections.abc import Sequence
  15. from alembic import op
  16. revision: str = "0034_role_anchor_self"
  17. down_revision: str | None = "0033_role_upload_permission"
  18. branch_labels: str | Sequence[str] | None = None
  19. depends_on: str | Sequence[str] | None = None
  20. def upgrade() -> None:
  21. # 全部角色锚点统一置 SELF(0=跟随用户设置),含软删行保持一致性
  22. op.execute("UPDATE sys_role SET managed_org_id = 0")
  23. def downgrade() -> None:
  24. raise RuntimeError(
  25. "有损降级:sys_role.managed_org_id 原始锚点值(NULL/固定机构ID)"
  26. "已统一收敛为 0,无法还原,拒绝降级"
  27. )