Standort "GA San" + 6 Rettungsrucksäcke angelegt (Audit-Trail)
CI / backend-tests (push) Failing after 1m17s
CI / frontend-build (push) Successful in 23s

Live-Anlegelauf (bereits ausgeführt): Standort "GA San", 6x Objekt aus
Vorlage "Rettungsrucksack Standard" (RK-00001 bis RK-00006), Codes auf
Nutzer-Wunsch vorerst fortlaufend, spätere Umcodierung möglich.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-04 22:04:48 +02:00
co-authored by Claude Sonnet 5
parent f77d2d6fa6
commit 682bb49b2a
2 changed files with 86 additions and 0 deletions
@@ -0,0 +1,60 @@
"""Einmaliger Anlegelauf, 2026-09-04: Standort "GA San" + 6 Rettungsrucksäcke
(Vorlage "Rettungsrucksack Standard") angelegt.
Deployment-Regel (Prompt 19): Audit-Trail, bereits interaktiv gegen die
Live-DB auf 192.168.1.238 ausgeführt - nicht erneut laufen lassen (Standort
"GA San" existiert bereits, ein zweiter Lauf würde einen Duplikat-Standort
anlegen, da Standort.name kein UNIQUE-Constraint hat).
Aufruf, falls je auf einer anderen DB nachvollzogen werden muss (im
aktivierten venv):
python -m scripts.ga_san_anlegen_2026-09-04
"""
from __future__ import annotations
import asyncio
from sqlalchemy import select
from app.db.session import SessionLocal
from app.models.auth import KnotenTyp, Systemknoten
from app.models.stammdaten import Standort
from app.models.vorlage import Beladungsvorlage
from app.services.objekte import objekt_aus_vorlage
VORLAGE_ID = 2 # "Rettungsrucksack Standard" (Stand 2026-09-04)
ANZAHL = 6
async def main() -> None:
async with SessionLocal() as db:
standort = Standort(name="GA San")
db.add(standort)
await db.flush()
hauptserver = (
await db.execute(select(Systemknoten.id).where(Systemknoten.typ == KnotenTyp.haupt))
).scalar_one()
vorlage = await db.get(Beladungsvorlage, VORLAGE_ID)
assert vorlage is not None and vorlage.name == "Rettungsrucksack Standard"
for i in range(1, ANZAHL + 1):
objekt = await objekt_aus_vorlage(
db,
code=f"RK-{i:05d}",
name=f"Rettungsrucksack Standard {i}",
standort_id=standort.id,
vorlage=vorlage,
zustaendiger_server_id=hauptserver,
)
print(f"angelegt: {objekt.code} ({objekt.name}), id={objekt.id}")
await db.commit()
print(f"\nStandort 'GA San' id={standort.id}, {ANZAHL} Objekte angelegt.")
if __name__ == "__main__":
asyncio.run(main())