fix(objekt): Fahrzeug-Zuordnung als 1:n statt n:m (fachliche Korrektur)
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
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"""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")
|
||||
Reference in New Issue
Block a user