"""user login lockout fields Revision ID: 18373f14809e Revises: 47bbe76aa749 Create Date: 2026-07-15 14:50:58.423834 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '18373f14809e' down_revision = '47bbe76aa749' branch_labels = None depends_on = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### # server_default backfills existing rows to 0 (the column is NOT NULL). op.add_column('users', sa.Column('failed_attempts', sa.Integer(), nullable=False, server_default='0')) op.add_column('users', sa.Column('locked_until', sa.DateTime(timezone=True), nullable=True)) # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.drop_column('users', 'locked_until') op.drop_column('users', 'failed_attempts') # ### end Alembic commands ###