fix(db): add missing 'supervisor' value to the user_role enum at startup
CREATE TYPE ... EXCEPTION WHEN duplicate_object no-ops on existing types, so volumes created before 'supervisor' existed kept an enum without it and assigning the role 500'd: invalid input value for enum user_role: "supervisor". ALTER TYPE ... ADD VALUE IF NOT EXISTS is idempotent and safe on any volume.
This commit is contained in:
@@ -420,6 +420,9 @@ async def ensure_rbac_schema(engine: AsyncEngine) -> None:
|
|||||||
volume — the RBAC model expects these and login 500s without them."""
|
volume — the RBAC model expects these and login 500s without them."""
|
||||||
stmts = (
|
stmts = (
|
||||||
"ALTER TABLE users ADD COLUMN IF NOT EXISTS username TEXT",
|
"ALTER TABLE users ADD COLUMN IF NOT EXISTS username TEXT",
|
||||||
|
# The live user_role enum predates 'supervisor' — CREATE TYPE no-ops on
|
||||||
|
# an existing type, so without this ALTER, assigning the role 500s.
|
||||||
|
"ALTER TYPE user_role ADD VALUE IF NOT EXISTS 'supervisor'",
|
||||||
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS location TEXT DEFAULT ''",
|
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS location TEXT DEFAULT ''",
|
||||||
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS project_manager TEXT DEFAULT ''",
|
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS project_manager TEXT DEFAULT ''",
|
||||||
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS planned_start DATE",
|
"ALTER TABLE projects ADD COLUMN IF NOT EXISTS planned_start DATE",
|
||||||
|
|||||||
Reference in New Issue
Block a user