Skip to content

Commit 4c4bef7

Browse files
committed
migration
1 parent f458731 commit 4c4bef7

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

packages/common-library/src/common_library/users_enums.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"GUEST": 10,
77
"USER": 20,
88
"TESTER": 30,
9+
"PRODUCT_SUPPORT": 35,
910
"PRODUCT_OWNER": 40,
1011
"ADMIN": 100,
1112
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""Updates user roles with product support enum
2+
3+
Revision ID: 1546c76e03f0
4+
Revises: 06eafd25d004
5+
Create Date: 2025-09-04 17:58:46.902427+00:00
6+
7+
"""
8+
9+
from alembic import op
10+
11+
# revision identifiers, used by Alembic.
12+
revision = "1546c76e03f0"
13+
down_revision = "06eafd25d004"
14+
branch_labels = None
15+
depends_on = None
16+
17+
18+
def upgrade():
19+
# Add the new PRODUCT_SUPPORT enum value to the existing UserRole enum
20+
op.execute("ALTER TYPE userrole ADD VALUE 'PRODUCT_SUPPORT'")
21+
22+
23+
def downgrade():
24+
# Convert users with PRODUCT_SUPPORT role to TESTER before removing the enum value
25+
op.execute("UPDATE users SET role = 'TESTER' WHERE role = 'PRODUCT_SUPPORT'")
26+
27+
# NOTE: Downgrade new updates requires re-building the entire enum!
28+
op.execute("ALTER TYPE userrole RENAME TO userrole_old")
29+
op.execute(
30+
"CREATE TYPE userrole AS ENUM('ANONYMOUS', 'GUEST', 'USER', 'TESTER', 'PRODUCT_OWNER', 'ADMIN')"
31+
)
32+
op.execute(
33+
"ALTER TABLE users ALTER COLUMN role TYPE userrole USING "
34+
"role::text::userrole"
35+
)
36+
op.execute("DROP TYPE userrole_old")

0 commit comments

Comments
 (0)