Портал технической службы: наряды и чек-листы, задачи, отказы и неисправности, анализ надёжности, карты, склады, приложение для Android

This commit is contained in:
darkorion
2026-10-13 09:09:53 +03:00
commit 67e411eea8
246 changed files with 23152 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
"""Готовит чистую БД с тестовыми данными (как в демо-режиме) для съёмки скриншотов руководства.
Запуск (из корня проекта): python tools/guide/seed_server.py <каталог>
Создаёт <каталог>/guide.db и <каталог>/photos; администратор admin / admin, остальные — пароль demo1234.
Затем сервер: DATABASE_URL=sqlite:///<каталог>/guide.db DATA_DIR=<каталог> uvicorn app.main:app --port 8000
"""
import os
import sys
from pathlib import Path
root = Path(sys.argv[1]).resolve()
root.mkdir(parents=True, exist_ok=True)
os.environ["DATABASE_URL"] = "sqlite:///" + (root / "guide.db").as_posix()
os.environ["DATA_DIR"] = str(root)
sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
from sqlalchemy.orm import sessionmaker # noqa: E402
from app import db as dbm, demo # noqa: E402
from app.migrate import ensure_schema # noqa: E402
from app.security import hash_password # noqa: E402
(root / "guide.db").unlink(missing_ok=True)
ensure_schema(dbm.engine)
photos = root / "photos"
photos.mkdir(exist_ok=True)
with sessionmaker(bind=dbm.engine, autoflush=False, expire_on_commit=False)() as s:
demo.seed(s, {"id": 1, "username": "admin", "full_name": "Администратор", "password_hash": hash_password("admin")}, str(photos))
print("seeded", root)