"""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')