2026072652_add_password_reset_request_log_a2c893432a1f.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """add password_reset_request_log
  2. Revision ID: a2c893432a1f
  3. Revises: 3b96bd12a533
  4. Create Date: 2026-07-26 19:52:07.317867
  5. """
  6. from alembic import op
  7. import sqlalchemy as sa
  8. # revision identifiers, used by Alembic.
  9. revision = 'a2c893432a1f'
  10. down_revision = '3b96bd12a533'
  11. branch_labels = None
  12. depends_on = None
  13. def upgrade():
  14. # ### commands auto generated by Alembic - please adjust! ###
  15. op.create_table('password_reset_request_log',
  16. sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
  17. sa.Column('email', sa.String(length=254), nullable=False),
  18. sa.Column('requested_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
  19. sa.PrimaryKeyConstraint('id')
  20. )
  21. op.create_index(op.f('ix_password_reset_request_log_email'), 'password_reset_request_log', ['email'], unique=False)
  22. op.create_table('password_reset_tokens',
  23. sa.Column('id', sa.UUID(as_uuid=False), nullable=False),
  24. sa.Column('user_id', sa.UUID(as_uuid=False), nullable=False),
  25. sa.Column('token_hash', sa.String(length=64), nullable=False),
  26. sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False),
  27. sa.Column('expires_at', sa.DateTime(timezone=True), nullable=False),
  28. sa.Column('used_at', sa.DateTime(timezone=True), nullable=True),
  29. sa.Column('purpose', sa.String(length=32), nullable=False),
  30. sa.ForeignKeyConstraint(['user_id'], ['user_model.id'], ondelete='CASCADE'),
  31. sa.PrimaryKeyConstraint('id')
  32. )
  33. op.create_index(op.f('ix_password_reset_tokens_token_hash'), 'password_reset_tokens', ['token_hash'], unique=True)
  34. op.create_index(op.f('ix_password_reset_tokens_user_id'), 'password_reset_tokens', ['user_id'], unique=False)
  35. # ### end Alembic commands ###
  36. def downgrade():
  37. # ### commands auto generated by Alembic - please adjust! ###
  38. op.drop_index(op.f('ix_password_reset_tokens_user_id'), table_name='password_reset_tokens')
  39. op.drop_index(op.f('ix_password_reset_tokens_token_hash'), table_name='password_reset_tokens')
  40. op.drop_table('password_reset_tokens')
  41. op.drop_index(op.f('ix_password_reset_request_log_email'), table_name='password_reset_request_log')
  42. op.drop_table('password_reset_request_log')
  43. # ### end Alembic commands ###