41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
"""Add user management fields
|
|
|
|
Revision ID: c3d5e7f9ab12
|
|
Revises: b2c4d6e8fa10
|
|
Create Date: 2026-04-24 10:00:00.000000
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = 'c3d5e7f9ab12'
|
|
down_revision: Union[str, Sequence[str], None] = 'b2c4d6e8fa10'
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Add user management fields to users table."""
|
|
op.add_column('users', sa.Column('email_verified', sa.Boolean(), server_default='false', nullable=False))
|
|
op.add_column('users', sa.Column('verification_code', sa.String(6), nullable=True))
|
|
op.add_column('users', sa.Column('verification_code_expires', sa.DateTime(), nullable=True))
|
|
op.add_column('users', sa.Column('reset_token', sa.String(255), nullable=True))
|
|
op.add_column('users', sa.Column('reset_token_expires', sa.DateTime(), nullable=True))
|
|
op.add_column('users', sa.Column('avatar_url', sa.String(500), nullable=True))
|
|
op.add_column('users', sa.Column('is_admin', sa.Boolean(), server_default='false', nullable=False))
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Remove user management fields from users table."""
|
|
op.drop_column('users', 'is_admin')
|
|
op.drop_column('users', 'avatar_url')
|
|
op.drop_column('users', 'reset_token_expires')
|
|
op.drop_column('users', 'reset_token')
|
|
op.drop_column('users', 'verification_code_expires')
|
|
op.drop_column('users', 'verification_code')
|
|
op.drop_column('users', 'email_verified')
|