smallbusinessinventorymanag.../migrations/versions/add_user_verification_fields.py

42 lines
1.7 KiB
Python

"""Add user verification fields
Revision ID: 002
Revises: 001
Create Date: 2023-07-21
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.sql import column, table
# revision identifiers, used by Alembic.
revision = '002'
down_revision = '001'
branch_labels = None
depends_on = None
def upgrade():
# Add verification and reset password fields to user table
with op.batch_alter_table('user') as batch_op:
batch_op.add_column(sa.Column('is_verified', sa.Boolean(), nullable=False, server_default='0'))
batch_op.add_column(sa.Column('verification_token', sa.String(), nullable=True))
batch_op.add_column(sa.Column('verification_token_expires', sa.DateTime(), nullable=True))
batch_op.add_column(sa.Column('password_reset_token', sa.String(), nullable=True))
batch_op.add_column(sa.Column('password_reset_token_expires', sa.DateTime(), nullable=True))
# Create indexes for tokens to speed up lookups
batch_op.create_index(op.f('ix_user_verification_token'), ['verification_token'], unique=False)
batch_op.create_index(op.f('ix_user_password_reset_token'), ['password_reset_token'], unique=False)
def downgrade():
# Remove verification and reset password fields from user table
with op.batch_alter_table('user') as batch_op:
batch_op.drop_index(op.f('ix_user_password_reset_token'))
batch_op.drop_index(op.f('ix_user_verification_token'))
batch_op.drop_column('password_reset_token_expires')
batch_op.drop_column('password_reset_token')
batch_op.drop_column('verification_token_expires')
batch_op.drop_column('verification_token')
batch_op.drop_column('is_verified')