From 1afac3a7975d8ac5f22bb92553480c4a3dfb8ef8 Mon Sep 17 00:00:00 2001 From: patrick Date: Sat, 5 Sep 2026 14:09:30 +0200 Subject: [PATCH] fix(models): app/models/__init__.py fehlten 6 Module seit Personal-Modul MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nicht mitgezogen seit Migration 0012: personal, mangel, fahrzeugdetails, lagerbewegung, dokument, permission. Live-Testlauf von scripts/create_admin.py brach mit NoReferencedTableError ab (Benutzer.einheit_id -> einheit war nicht registriert, da das Skript nur app.models.auth statt des vollständigen Registry-Imports nutzt). App selbst lief nur zufällig fehlerfrei, weil api.py alle Endpunkt-Module importiert und die dortigen Modell-Importe die Lücke im Betrieb kaschiert haben. Fix: __init__.py vervollständigt + create_admin.py/eskalation_pruefen.py (täglicher Timer!) bekommen zusätzlich ein explizites "import app.models" als Schutz, unabhängig davon ob die Registry künftig wieder unvollständig wird. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD --- backend/app/models/__init__.py | 27 +++++++++++++++++++++++++++ backend/scripts/create_admin.py | 4 ++++ backend/scripts/eskalation_pruefen.py | 1 + 3 files changed, 32 insertions(+) diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 46ffe4e..c7aae51 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -1,13 +1,25 @@ from app.models.auth import Benutzer, BenutzerRolle, RolleTyp, Systemknoten, KnotenTyp +from app.models.dokument import Dokument from app.models.eskalation import EskalationKonfiguration +from app.models.fahrzeugdetails import Fahrzeugdetails from app.models.fehlbestand import Fehlbestand, FehlbestandStatus from app.models.geraet_instanz import GeraetInstanz, GeraetStatus from app.models.historie import Historie from app.models.kontrolle import Kontrolle, KontrollStatus, Kontrollposition +from app.models.lagerbewegung import Lagerbewegung +from app.models.mangel import Mangel, MangelPrioritaet, MangelStatus from app.models.mindermenge import MindermengeStatus, MindermengenGenehmigung from app.models.nachfuellung import Nachfuellung from app.models.objekt import Objekt, ObjektStatus from app.models.objektposition import Objektposition, ObjektpositionStatus +from app.models.permission import Berechtigung, BenutzerRolleZuordnung, Rolle, RolleBerechtigung +from app.models.personal import ( + BenutzerQualifikation, + Einheit, + ObjekttypQualifikationsanforderung, + Qualifikationskategorie, + Qualifikationstyp, +) from app.models.stammdaten import Bereich, Kategorie, Material, MaterialTyp, Objekttyp, Standort from app.models.vorlage import Beladungsvorlage, VorlageStatus, Vorlagenposition from app.models.zustaendigkeit import Kontrollverantwortung, Zustaendigkeit @@ -18,7 +30,9 @@ __all__ = [ "RolleTyp", "Systemknoten", "KnotenTyp", + "Dokument", "EskalationKonfiguration", + "Fahrzeugdetails", "Fehlbestand", "FehlbestandStatus", "GeraetInstanz", @@ -27,6 +41,10 @@ __all__ = [ "Kontrolle", "KontrollStatus", "Kontrollposition", + "Lagerbewegung", + "Mangel", + "MangelPrioritaet", + "MangelStatus", "MindermengeStatus", "MindermengenGenehmigung", "Nachfuellung", @@ -34,6 +52,15 @@ __all__ = [ "ObjektStatus", "Objektposition", "ObjektpositionStatus", + "Berechtigung", + "BenutzerRolleZuordnung", + "Rolle", + "RolleBerechtigung", + "BenutzerQualifikation", + "Einheit", + "ObjekttypQualifikationsanforderung", + "Qualifikationskategorie", + "Qualifikationstyp", "Bereich", "Kategorie", "Material", diff --git a/backend/scripts/create_admin.py b/backend/scripts/create_admin.py index 7ae0aa0..4989c2d 100644 --- a/backend/scripts/create_admin.py +++ b/backend/scripts/create_admin.py @@ -14,6 +14,10 @@ import asyncio from sqlalchemy import select +import app.models # noqa: F401 (alle ORM-Modelle registrieren, sonst schlägt +# db.flush() mit NoReferencedTableError fehl, sobald ein Modell eine FK auf +# eine Tabelle hat, deren Modell hier nicht importiert wurde - Fund beim +# Live-Testlauf, Benutzer.einheit_id -> einheit war nicht mitregistriert) from app.core.security import hash_password from app.db.session import SessionLocal from app.models.auth import Benutzer, BenutzerRolle, RolleTyp diff --git a/backend/scripts/eskalation_pruefen.py b/backend/scripts/eskalation_pruefen.py index cba8293..5ee26b3 100644 --- a/backend/scripts/eskalation_pruefen.py +++ b/backend/scripts/eskalation_pruefen.py @@ -15,6 +15,7 @@ from __future__ import annotations import asyncio import logging +import app.models # noqa: F401 (alle ORM-Modelle registrieren, siehe create_admin.py) from app.db.session import SessionLocal from app.services.eskalation import pruefe_offene_fehlbestaende