"""Rename user_id → identity_handle (String(64)) in collaborators and stash tables. Revision ID: 0018 Revises: 0017 """ from __future__ import annotations import sqlalchemy as sa from alembic import op revision = "0018" down_revision = "0017" branch_labels = None depends_on = None def upgrade() -> None: # --- musehub_collaborators --- # Drop old unique constraint and indexes before altering columns op.drop_constraint( "uq_musehub_collaborators_repo_user", "musehub_collaborators", type_="unique", ) op.drop_index("ix_musehub_collaborators_user_id", table_name="musehub_collaborators") # Rename user_id → identity_handle, widen to String(64) op.alter_column( "musehub_collaborators", "user_id", new_column_name="identity_handle", existing_type=sa.String(36), type_=sa.String(64), existing_nullable=False, ) # Rename invited_by → invited_by_handle, widen to String(64) op.alter_column( "musehub_collaborators", "invited_by", new_column_name="invited_by_handle", existing_type=sa.String(36), type_=sa.String(64), existing_nullable=True, ) # Recreate constraint and index under new names/columns op.create_unique_constraint( "uq_musehub_collaborators_repo_identity", "musehub_collaborators", ["repo_id", "identity_handle"], ) op.create_index( "ix_musehub_collaborators_identity_handle", "musehub_collaborators", ["identity_handle"], ) # --- musehub_stash --- op.drop_index("ix_musehub_stash_user_id", table_name="musehub_stash") # Rename user_id → identity_handle, widen to String(64) op.alter_column( "musehub_stash", "user_id", new_column_name="identity_handle", existing_type=sa.String(36), type_=sa.String(64), existing_nullable=False, ) op.create_index( "ix_musehub_stash_identity_handle", "musehub_stash", ["identity_handle"], ) def downgrade() -> None: # --- musehub_stash --- op.drop_index("ix_musehub_stash_identity_handle", table_name="musehub_stash") op.alter_column( "musehub_stash", "identity_handle", new_column_name="user_id", existing_type=sa.String(64), type_=sa.String(36), existing_nullable=False, ) op.create_index("ix_musehub_stash_user_id", "musehub_stash", ["user_id"]) # --- musehub_collaborators --- op.drop_index( "ix_musehub_collaborators_identity_handle", table_name="musehub_collaborators" ) op.drop_constraint( "uq_musehub_collaborators_repo_identity", "musehub_collaborators", type_="unique", ) op.alter_column( "musehub_collaborators", "invited_by_handle", new_column_name="invited_by", existing_type=sa.String(64), type_=sa.String(36), existing_nullable=True, ) op.alter_column( "musehub_collaborators", "identity_handle", new_column_name="user_id", existing_type=sa.String(64), type_=sa.String(36), existing_nullable=False, ) op.create_index( "ix_musehub_collaborators_user_id", "musehub_collaborators", ["user_id"] ) op.create_unique_constraint( "uq_musehub_collaborators_repo_user", "musehub_collaborators", ["repo_id", "user_id"], )