Skip to content

Commit 2a7b22e

Browse files
committed
Create 9221408912dd_add_user_role_table.py
1 parent def1712 commit 2a7b22e

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
"""add user role table
2+
3+
Revision ID: 9221408912dd
4+
Revises: add6266277c7
5+
Create Date: 2026-01-29 14:54:10.669000
6+
7+
"""
8+
from typing import Sequence, Union
9+
10+
from alembic import op
11+
import sqlalchemy as sa
12+
13+
14+
# revision identifiers, used by Alembic.
15+
revision: str = '9221408912dd'
16+
down_revision: Union[str, None] = 'add6266277c7'
17+
branch_labels: Union[str, Sequence[str], None] = None
18+
depends_on: Union[str, Sequence[str], None] = None
19+
20+
21+
def upgrade() -> None:
22+
# Add unique constraint on users.auth_uid
23+
op.create_unique_constraint('auth_uid_unique', 'users', ['auth_uid'])
24+
25+
# Create the workspace_role enum type
26+
workspace_role = sa.Enum('lead', 'validator', 'contributor', name='workspace_role')
27+
workspace_role.create(op.get_bind())
28+
29+
# Create the user_workspace_roles table
30+
op.create_table(
31+
'user_workspace_roles',
32+
sa.Column('user_auth_uid', sa.String(), nullable=False),
33+
sa.Column('workspace_id', sa.BigInteger(), nullable=False),
34+
sa.Column('role', sa.Enum('lead', 'validator', 'contributor', name='workspace_role', create_type=False), nullable=False),
35+
sa.ForeignKeyConstraint(['user_auth_uid'], ['users.auth_uid']),
36+
sa.PrimaryKeyConstraint('user_auth_uid', 'workspace_id')
37+
)
38+
39+
40+
def downgrade() -> None:
41+
op.drop_table('user_workspace_roles')
42+
43+
# Drop the enum type
44+
workspace_role = sa.Enum('lead', 'validator', 'contributor', name='workspace_role')
45+
workspace_role.drop(op.get_bind())
46+
47+
op.drop_constraint('auth_uid_unique', 'users', type_='unique')

0 commit comments

Comments
 (0)