Spaces:
Sleeping
Sleeping
| """add refresh token table | |
| Revision ID: 20251222_add_refresh_token_table | |
| Revises: | |
| Create Date: 2025-12-22 00:00:00.000000 | |
| """ | |
| from alembic import op | |
| import sqlalchemy as sa | |
| from sqlalchemy.dialects import postgresql | |
| # revision identifiers, used by Alembic. | |
| revision = '20251222_add_refresh_token_table' | |
| down_revision = '4ac448e3f100' # depends on last migration in the main chain | |
| branch_labels = None | |
| depends_on = None | |
| def upgrade() -> None: | |
| op.create_table( | |
| 'refreshtoken', | |
| sa.Column('id', postgresql.UUID(as_uuid=True), primary_key=True, nullable=False), | |
| sa.Column('token_hash', sa.String(length=128), nullable=False), | |
| sa.Column('user_id', postgresql.UUID(as_uuid=True), sa.ForeignKey('user.id'), nullable=True), | |
| sa.Column('revoked', sa.Boolean(), nullable=False, server_default=sa.text('false')), | |
| sa.Column('created_at', sa.DateTime(), nullable=True), | |
| sa.Column('expires_at', sa.DateTime(), nullable=True), | |
| ) | |
| # create index separately (SQLAlchemy/Alembic prefers explicit index creation) | |
| op.create_index('ix_refreshtoken_token_hash', 'refreshtoken', ['token_hash']) | |
| def downgrade() -> None: | |
| # drop index then table | |
| op.drop_index('ix_refreshtoken_token_hash', table_name='refreshtoken') | |
| op.drop_table('refreshtoken') | |