35 lines
960 B
Python
35 lines
960 B
Python
"""add user roles
|
|
|
|
Revision ID: 002
|
|
Revises: 001
|
|
Create Date: 2023-11-16
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '002'
|
|
down_revision = '001'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
# Add role column to users table
|
|
with op.batch_alter_table('users', schema=None) as batch_op:
|
|
batch_op.add_column(sa.Column('role', sa.Enum('admin', 'user', name='userrole'), nullable=True))
|
|
|
|
# Update existing users to have the 'user' role
|
|
op.execute("UPDATE users SET role = 'user' WHERE role IS NULL")
|
|
|
|
# Make the column non-nullable with a default value
|
|
with op.batch_alter_table('users', schema=None) as batch_op:
|
|
batch_op.alter_column('role', nullable=False, server_default='user')
|
|
|
|
|
|
def downgrade():
|
|
# Remove role column from users table
|
|
with op.batch_alter_table('users', schema=None) as batch_op:
|
|
batch_op.drop_column('role') |