"""DOC-002: feste Dokumenttypen statt reinem Freitext (Kategorie beim Upload). Revision ID: 0026_dokumenttyp Revises: 0025_material_suchindex Create Date: 2026-09-08 """ from typing import Sequence, Union from alembic import op revision: str = "0026_dokumenttyp" down_revision: Union[str, None] = "0025_material_suchindex" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.execute( "CREATE TYPE dokument_typ AS ENUM " "('pruefprotokoll', 'wartungsbericht', 'bedienungsanleitung', 'rechnung', " "'zulassungsdokument', 'sonstiges')" ) op.execute( "ALTER TABLE dokument ADD COLUMN dokumenttyp dokument_typ NOT NULL DEFAULT 'sonstiges'" ) # Default nur für den Backfill nötig - künftige Inserts sollen den Typ immer # explizit mitgeben (Anwendungsebene), kein stiller Fallback mehr. op.execute("ALTER TABLE dokument ALTER COLUMN dokumenttyp DROP DEFAULT") def downgrade() -> None: op.execute("ALTER TABLE dokument DROP COLUMN dokumenttyp") op.execute("DROP TYPE dokument_typ")