"""objektposition.code: Code128-Etikett für Geräte-Exemplare Revision ID: 0005_add_objektposition_code Revises: 0004_add_fach Create Date: 2026-09-04 Konzept-Ergänzung zu Karte 10 / Prompt 09: objekt.code und material.code identifizieren Objekt bzw. Materialart, aber bei materialtyp='geraet_sn' identifiziert der Code das konkrete Exemplar an der Objektposition, nicht den Materialstamm. Eigenes nullable/unique Feld, kein Umbau bestehender Spalten (seriennummer bleibt separates Attribut). """ from typing import Sequence, Union from alembic import op revision: str = "0005_add_objektposition_code" down_revision: Union[str, None] = "0004_add_fach" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.execute( """ ALTER TABLE objektposition ADD COLUMN code TEXT UNIQUE; """ ) def downgrade() -> None: op.execute("ALTER TABLE objektposition DROP COLUMN code;")