Files
classquiz-ai/migrations/versions/901dfcdf8d38_added_backup_code.py
T
2026-05-25 21:57:56 +00:00

51 lines
1.2 KiB
Python

# SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
#
# SPDX-License-Identifier: MPL-2.0
"""Added Backup-code
Revision ID: 901dfcdf8d38
Revises: 25f2c34a69c8
Create Date: 2022-12-18 11:48:22.772981
"""
import os
from alembic import op
import sqlalchemy as sa
from sqlalchemy.orm import Session
import ormar
# revision identifiers, used by Alembic.
revision = "901dfcdf8d38"
down_revision = "25f2c34a69c8"
branch_labels = None
depends_on = None
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column("users", sa.Column("backup_code", sa.String(length=64), nullable=True))
conn = op.get_bind()
session = Session(bind=conn)
res = session.execute("SELECT id from users;")
for row in res:
user_id = str(row).strip(",.'()")
session.execute(
sa.sql.text("UPDATE users SET backup_code = :backup_code WHERE users.id=:user_id"),
{"user_id": user_id, "backup_code": os.urandom(32).hex()},
)
op.alter_column("users", "backup_code", nullable=False)
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("users", "backup_code")
# ### end Alembic commands ###