Портал технической службы: наряды и чек-листы, задачи, отказы и неисправности, анализ надёжности, карты, склады, приложение для Android
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user