"""0054_dmca_hold_quarantine_abuse_tables Revision ID: 0054 Revises: 0053 Create Date: 2026-05-11 20:05:28.628315+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 = '0054' down_revision: Union[str, None] = '0053' 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.alter_column('musehub_attestation_claim_types', 'introduced_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_attestations', 'scope', existing_type=sa.VARCHAR(length=32), server_default=None, existing_nullable=False) op.alter_column('musehub_commits', 'agent_id', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'model_id', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'toolchain_id', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'signature', existing_type=sa.TEXT(), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'signer_public_key', existing_type=sa.TEXT(), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'signer_key_id', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'sem_ver_bump', existing_type=sa.VARCHAR(length=10), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'test_runs', existing_type=sa.INTEGER(), server_default=None, existing_nullable=True) op.alter_column('musehub_commits', 'prompt_hash', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=True) op.alter_column('musehub_file_last_commits', 'commit_message', existing_type=sa.TEXT(), server_default=None, existing_nullable=False) op.alter_column('musehub_file_last_commits', 'commit_author', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'risk', existing_type=sa.VARCHAR(length=16), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'risk_score', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'impact_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'churn_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'test_gap_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'coupling_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'total_issues', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'warning_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'error_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'file_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_clones', 'member_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_clones', 'members_json', existing_type=sa.TEXT(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'total_modules', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'total_edges', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'cycle_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'symbol_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'fan_in', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'fan_out', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'language', existing_type=sa.VARCHAR(length=128), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_coupling', 'co_changes', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_dead', 'confidence', existing_type=sa.VARCHAR(length=16), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_entangle', 'co_change_rate', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_entangle', 'co_changes', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_languages', 'symbol_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_languages', 'file_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_languages', 'pct', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_languages', 'kinds_json', existing_type=postgresql.JSONB(astext_type=sa.Text()), comment=None, existing_comment="kind → count breakdown, e.g. {'function': 1346, 'class': 1447}", existing_nullable=True) op.alter_column('musehub_intel_stable', 'days_stable', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_type', 'params_total', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_type', 'params_annotated', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_type', 'params_with_any', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_type', 'type_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'added', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'removed', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'net', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'modified', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'active_commits', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_added', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_net', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_modified', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_active_commits', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'acceleration', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'stagnant_commits', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'window_size', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_intel_velocity', 'commits_analysed', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.drop_index(op.f('ix_musehub_object_refs_object_id'), table_name='musehub_object_refs') op.alter_column('musehub_proposal_dependencies', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_reviews', 'reviewed_domains', existing_type=postgresql.ARRAY(sa.TEXT()), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_reviews', 'domain_risk_acknowledged', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'from_branch_commit_id', existing_type=sa.VARCHAR(length=128), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'result', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'duration_ms', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'dimensional_risk', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'midi_tracks_changed', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'midi_notes_delta', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'payment_claim_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'payment_ledger_delta_nano', existing_type=sa.BIGINT(), server_default=None, existing_nullable=False) op.alter_column('musehub_repos', 'default_branch', existing_type=sa.VARCHAR(length=255), server_default='main', existing_nullable=False) op.alter_column('musehub_repos', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) op.alter_column('musehub_repos', 'updated_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) # Delete snapshot rows that have no manifest_blob before enforcing NOT NULL. # These are orphaned rows from pre-0053 pushes that were never backfilled. op.execute("DELETE FROM musehub_snapshots WHERE manifest_blob IS NULL") op.alter_column('musehub_snapshots', 'manifest_blob', existing_type=postgresql.BYTEA(), nullable=False) op.alter_column('musehub_symbol_coupling', 'shared_commits', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn_30d', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn_90d', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_direct', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_cross', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_top', existing_type=postgresql.ARRAY(sa.TEXT()), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'author_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'gravity', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_intel', 'weekly', existing_type=postgresql.ARRAY(sa.INTEGER()), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'change_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'version_count', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_add', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_modify', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_delete', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_move', existing_type=sa.INTEGER(), server_default=None, existing_nullable=False) # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.alter_column('musehub_symbol_vitals', 'op_move', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_delete', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_modify', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'op_add', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'version_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_vitals', 'change_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'weekly', existing_type=postgresql.ARRAY(sa.INTEGER()), server_default=sa.text("'{}'::integer[]"), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'gravity', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'author_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_top', existing_type=postgresql.ARRAY(sa.TEXT()), server_default=sa.text("'{}'::text[]"), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_cross', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast_direct', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'blast', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn_90d', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn_30d', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_intel', 'churn', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_symbol_coupling', 'shared_commits', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_snapshots', 'manifest_blob', existing_type=postgresql.BYTEA(), nullable=True) op.alter_column('musehub_repos', 'updated_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_repos', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=None, existing_nullable=False) op.alter_column('musehub_repos', 'default_branch', existing_type=sa.VARCHAR(length=255), server_default=None, existing_nullable=False) op.alter_column('musehub_proposals', 'payment_ledger_delta_nano', existing_type=sa.BIGINT(), server_default=sa.text("'0'::bigint"), existing_nullable=False) op.alter_column('musehub_proposals', 'payment_claim_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_proposals', 'midi_notes_delta', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_proposals', 'midi_tracks_changed', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_proposals', 'dimensional_risk', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=sa.text("'{}'::jsonb"), existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'duration_ms', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'result', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=sa.text("'{}'::jsonb"), existing_nullable=False) op.alter_column('musehub_proposal_simulations', 'from_branch_commit_id', existing_type=sa.VARCHAR(length=128), server_default=sa.text("''::character varying"), existing_nullable=False) op.alter_column('musehub_proposal_reviews', 'domain_risk_acknowledged', existing_type=postgresql.JSONB(astext_type=sa.Text()), server_default=sa.text("'{}'::jsonb"), existing_nullable=False) op.alter_column('musehub_proposal_reviews', 'reviewed_domains', existing_type=postgresql.ARRAY(sa.TEXT()), server_default=sa.text("'{}'::text[]"), existing_nullable=False) op.alter_column('musehub_proposal_dependencies', 'created_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) op.create_index(op.f('ix_musehub_object_refs_object_id'), 'musehub_object_refs', ['object_id'], unique=False) op.alter_column('musehub_intel_velocity', 'commits_analysed', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'window_size', existing_type=sa.INTEGER(), server_default=sa.text('20'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'stagnant_commits', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'acceleration', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_active_commits', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_modified', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_net', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'prior_added', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'active_commits', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'modified', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'net', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'removed', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_velocity', 'added', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_type', 'type_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_type', 'params_with_any', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_type', 'params_annotated', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_type', 'params_total', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_stable', 'days_stable', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_languages', 'kinds_json', existing_type=postgresql.JSONB(astext_type=sa.Text()), comment="kind → count breakdown, e.g. {'function': 1346, 'class': 1447}", existing_nullable=True) op.alter_column('musehub_intel_languages', 'pct', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_languages', 'file_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_languages', 'symbol_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_entangle', 'co_changes', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_entangle', 'co_change_rate', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_dead', 'confidence', existing_type=sa.VARCHAR(length=16), server_default=sa.text("'medium'::character varying"), existing_nullable=False) op.alter_column('musehub_intel_coupling', 'co_changes', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'language', existing_type=sa.VARCHAR(length=128), server_default=sa.text("''::character varying"), existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'fan_out', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'fan_in', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_modules', 'symbol_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'cycle_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'total_edges', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_codemap_meta', 'total_modules', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_clones', 'members_json', existing_type=sa.TEXT(), server_default=sa.text("'[]'::text"), existing_nullable=False) op.alter_column('musehub_intel_clones', 'member_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'file_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'error_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'warning_count', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_breakage_meta', 'total_issues', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'coupling_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'test_gap_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'churn_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'impact_score', existing_type=sa.DOUBLE_PRECISION(precision=53), server_default=sa.text("'0'::double precision"), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'risk_score', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=False) op.alter_column('musehub_intel_blast_risk', 'risk', existing_type=sa.VARCHAR(length=16), server_default=sa.text("'low'::character varying"), existing_nullable=False) op.alter_column('musehub_file_last_commits', 'commit_author', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=False) op.alter_column('musehub_file_last_commits', 'commit_message', existing_type=sa.TEXT(), server_default=sa.text("''::text"), existing_nullable=False) op.alter_column('musehub_commits', 'prompt_hash', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=True) op.alter_column('musehub_commits', 'test_runs', existing_type=sa.INTEGER(), server_default=sa.text('0'), existing_nullable=True) op.alter_column('musehub_commits', 'sem_ver_bump', existing_type=sa.VARCHAR(length=10), server_default=sa.text("'none'::character varying"), existing_nullable=True) op.alter_column('musehub_commits', 'signer_key_id', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=True) op.alter_column('musehub_commits', 'signer_public_key', existing_type=sa.TEXT(), server_default=sa.text("''::text"), existing_nullable=True) op.alter_column('musehub_commits', 'signature', existing_type=sa.TEXT(), server_default=sa.text("''::text"), existing_nullable=True) op.alter_column('musehub_commits', 'toolchain_id', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=True) op.alter_column('musehub_commits', 'model_id', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=True) op.alter_column('musehub_commits', 'agent_id', existing_type=sa.VARCHAR(length=255), server_default=sa.text("''::character varying"), existing_nullable=True) op.alter_column('musehub_attestations', 'scope', existing_type=sa.VARCHAR(length=32), server_default=sa.text("'identity'::character varying"), existing_nullable=False) op.alter_column('musehub_attestation_claim_types', 'introduced_at', existing_type=postgresql.TIMESTAMP(timezone=True), server_default=sa.text('now()'), existing_nullable=False) # ### end Alembic commands ###