"""Add users.extra_roles for multi-role support. A user can be granted more than one role, but only ever acts under a single "active" role at a time (``users.role``, unchanged — every existing permission check keeps reading it as-is). ``extra_roles`` holds the *other* roles a user can switch into via the top-bar role switcher; switching swaps the active role with one from this list. Revision ID: b066 Revises: b065 Create Date: 2026-07-20 """ import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql revision = "b066" down_revision = "b065" branch_labels = None depends_on = None def upgrade() -> None: op.add_column( "users", sa.Column("extra_roles", postgresql.JSONB(), nullable=False, server_default="[]"), ) def downgrade() -> None: op.drop_column("users", "extra_roles")