Commit Graph
8 Commits
Author SHA1 Message Date
naeel 3293330cec fix: ручной UPSERT вместо ON CONFLICT — не требует индекса (v1.2.39)
ON CONFLICT требовал уникальный индекс idx_runs_op_uid,
который не всегда создавался (мультистейтмент SQL в psycopg2).
→ save_run падал молча → история пустая.

Новый подход: UPDATE по op_uid, если rowcount==0 → INSERT.
Не зависит от индексов, работает всегда.
2026-08-03 10:18:10 +04:00
naeel 539cfd7b1a fix: дубликаты RUNNING/OK в истории — UPSERT по op_uid (v1.2.37)
Причина: save_run всегда делал INSERT, сценарий вызывал его дважды
(до поллинга RUNNING, после OK) → две строки в БД.

Исправление:
- init_db.py: частичный уникальный индекс idx_runs_op_uid
- save_run.py: INSERT ... ON CONFLICT (op_uid) DO UPDATE
  (статус, длительность, ошибка, этапы, meta — обновляются)
2026-08-03 10:00:29 +04:00
naeel 0783319fd1 Рефакторинг API-слоя, операций и БД 2026-07-31 17:13:54 +04:00
naeel 82a3be2067 v1.2.16: save full instance metadata (instance_meta JSONB)
init_db.py: ALTER TABLE runs ADD instance_meta JSONB
save_run.py: +instance_meta parameter → JSONB insert
api_test.py: _finish_op fetches GET /instances/{uid} after poll, saves all fields
scenario.py: run_scenario same — per-step instance metadata
Excludes: instanceUid, displayName, svc, serviceId, explainedStatus (already in other columns)
2026-07-31 14:19:29 +04:00
naeel 7f69c916ec v1.1.48: fix 4 scenario bugs — save_run: scenario_run_id+step_number, run_id before thread (202), TIMEOUT op_data init, RUNNING before API call, GET /run/<id> 2026-07-30 14:08:29 +04:00
naeel 3dbddda858 v1.0.99: debug logging for save_run — will show why it fails 2026-07-28 10:42:43 +04:00
naeel 99b0a79cbd v1.0.95: full test data — op_uid, user_email, app_version, params saved to runs 2026-07-28 10:12:16 +04:00
naeel d95afc60e3 v1.0.92: Steps 5-9 — dynamic services, PostgreSQL history, /api/history 2026-07-27 22:59:52 +04:00