Nutzer-Korrektur: "Ein Objekt gehört immer nur zu genau einem Fahrzeug"
- Spalte gezogen_von_objekt_id -> fahrzeug_id (Rename-Migration 0010)
- Zuvor begonnener n:m-Ansatz (objekt_kopplung Tabelle/Endpoints/Panel)
wieder entfernt, da fachlich falsch
- PATCH /objekte/{id} prüft Existenz + direkten Zyklus (A<->B)
- Frontend: einfache Single-Select "Fahrzeug zuordnen" statt Kopplungs-Panel
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
"""objekt.gezogen_von_objekt_id -> fahrzeug_id (Umbenennung, gleiche Semantik)
|
|
|
|
Revision ID: 0010_objekt_kopplung
|
|
Revises: 0009_gezogen_von
|
|
Create Date: 2026-09-05
|
|
|
|
Nutzer-Klarstellung zu Migration 0009: es geht nicht spezifisch um Anhänger-
|
|
Zugfahrzeug-Kopplung, sondern allgemein um die Zuordnung eines Objekts
|
|
(Rucksack, Gerät, Anhänger, ...) zu genau einem Fahrzeug (1:n, ein Objekt
|
|
gehört jederzeit höchstens einem Fahrzeug). Strukturell identisch mit 0009,
|
|
nur die Spalte/Constraint/Index sauberer benannt statt "gezogen_von".
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "0010_objekt_kopplung"
|
|
down_revision: Union[str, None] = "0009_gezogen_von"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute("ALTER TABLE objekt RENAME COLUMN gezogen_von_objekt_id TO fahrzeug_id")
|
|
op.execute("ALTER INDEX idx_objekt_gezogen_von RENAME TO idx_objekt_fahrzeug")
|
|
op.execute(
|
|
"ALTER TABLE objekt RENAME CONSTRAINT objekt_kein_selbstbezug TO objekt_fahrzeug_kein_selbstbezug"
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute(
|
|
"ALTER TABLE objekt RENAME CONSTRAINT objekt_fahrzeug_kein_selbstbezug TO objekt_kein_selbstbezug"
|
|
)
|
|
op.execute("ALTER INDEX idx_objekt_fahrzeug RENAME TO idx_objekt_gezogen_von")
|
|
op.execute("ALTER TABLE objekt RENAME COLUMN fahrzeug_id TO gezogen_von_objekt_id")
|