"""add_musehub_bridge_mirrors Revision ID: 0002 Revises: 0001 Create Date: 2026-04-28 15:06:37.762517+00:00 """ from __future__ import annotations from typing import Sequence, Union from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. revision: str = '0002' down_revision: Union[str, None] = '0001' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.create_table('musehub_bridge_mirrors', sa.Column('id', sa.String(length=128), nullable=False), sa.Column('repo_id', sa.String(length=128), nullable=False), sa.Column('git_remote_url', sa.String(length=2048), nullable=False), sa.Column('git_branch', sa.String(length=255), nullable=False), sa.Column('direction', sa.String(length=20), nullable=False), sa.Column('last_export_muse_commit_id', sa.String(length=128), nullable=True), sa.Column('last_export_git_sha', sa.String(length=128), nullable=True), sa.Column('last_export_at', sa.DateTime(timezone=True), nullable=True), sa.Column('last_import_git_sha', sa.String(length=128), nullable=True), sa.Column('last_import_muse_commit_id', sa.String(length=128), nullable=True), sa.Column('last_import_at', sa.DateTime(timezone=True), nullable=True), sa.Column('auto_export', sa.Boolean(), nullable=False), sa.Column('created_by', sa.String(length=255), nullable=False), sa.Column('created_at', sa.DateTime(timezone=True), nullable=False), sa.ForeignKeyConstraint(['repo_id'], ['musehub_repos.repo_id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('repo_id', 'git_remote_url', name='uq_bridge_mirror_repo_url') ) op.create_index(op.f('ix_musehub_bridge_mirrors_repo_id'), 'musehub_bridge_mirrors', ['repo_id'], unique=False) op.alter_column('muse_tags', 'tag_id', existing_type=sa.VARCHAR(length=128), type_=sa.String(length=36), existing_nullable=False) op.alter_column('musehub_attestations', 'issued_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_background_jobs', 'job_type', existing_type=sa.VARCHAR(length=128), type_=sa.String(length=64), existing_nullable=False) op.alter_column('musehub_coord_reservations', 'reservation_id', existing_type=sa.VARCHAR(length=36), type_=sa.String(length=128), existing_nullable=False) op.alter_column('musehub_coord_tasks', 'task_id', existing_type=sa.VARCHAR(length=36), type_=sa.String(length=128), existing_nullable=False) op.alter_column('musehub_domains', 'manifest_hash', existing_type=sa.VARCHAR(length=64), type_=sa.String(length=128), existing_nullable=False) op.alter_column('musehub_intel_results', 'data_json', existing_type=sa.TEXT(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_results', 'schema_version', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_results', 'computed_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_mpay_claims', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.execute('DROP INDEX IF EXISTS ix_musehub_objects_deleted_at') op.alter_column('musehub_profile_snapshots', 'data_json', existing_type=sa.TEXT(), server_default=None, existing_nullable=False) op.alter_column('musehub_profile_snapshots', 'computed_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_profile_snapshots', 'is_stale', existing_type=sa.BOOLEAN(), server_default=None, existing_nullable=False) op.execute('DROP INDEX IF EXISTS ix_musehub_profile_snapshots_computed_at') # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.create_index(op.f('ix_musehub_profile_snapshots_computed_at'), 'musehub_profile_snapshots', ['computed_at'], unique=False) op.alter_column('musehub_profile_snapshots', 'is_stale', existing_type=sa.BOOLEAN(), server_default=sa.text('false'), existing_nullable=False) op.alter_column('musehub_profile_snapshots', 'computed_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) op.alter_column('musehub_profile_snapshots', 'data_json', existing_type=sa.TEXT(), server_default=sa.text("'{}'::text"), existing_nullable=False) op.create_index(op.f('ix_musehub_objects_deleted_at'), 'musehub_objects', ['deleted_at'], unique=False) op.alter_column('musehub_mpay_claims', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('CURRENT_TIMESTAMP'), existing_nullable=False) op.alter_column('musehub_intel_results', 'computed_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) op.alter_column('musehub_intel_results', 'schema_version', existing_type=sa.INTEGER(), server_default=sa.text('1'), existing_nullable=False) op.alter_column('musehub_intel_results', 'data_json', existing_type=sa.TEXT(), server_default=sa.text("'{}'::text"), existing_nullable=False) op.alter_column('musehub_domains', 'manifest_hash', existing_type=sa.String(length=128), type_=sa.VARCHAR(length=64), existing_nullable=False) op.alter_column('musehub_coord_tasks', 'task_id', existing_type=sa.String(length=128), type_=sa.VARCHAR(length=36), existing_nullable=False) op.alter_column('musehub_coord_reservations', 'reservation_id', existing_type=sa.String(length=128), type_=sa.VARCHAR(length=36), existing_nullable=False) op.alter_column('musehub_background_jobs', 'job_type', existing_type=sa.String(length=64), type_=sa.VARCHAR(length=128), existing_nullable=False) op.alter_column('musehub_attestations', 'issued_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('CURRENT_TIMESTAMP'), existing_nullable=False) op.alter_column('muse_tags', 'tag_id', existing_type=sa.String(length=36), type_=sa.VARCHAR(length=128), existing_nullable=False) op.drop_index(op.f('ix_musehub_bridge_mirrors_repo_id'), table_name='musehub_bridge_mirrors') op.drop_table('musehub_bridge_mirrors') # ### end Alembic commands ###