fix: ручной UPSERT вместо ON CONFLICT — не требует индекса (v1.2.39)

ON CONFLICT требовал уникальный индекс idx_runs_op_uid,
который не всегда создавался (мультистейтмент SQL в psycopg2).
→ save_run падал молча → история пустая.

Новый подход: UPDATE по op_uid, если rowcount==0 → INSERT.
Не зависит от индексов, работает всегда.
This commit is contained in:
2026-08-03 10:18:10 +04:00
parent 38148516e6
commit 3293330cec
3 changed files with 32 additions and 37 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ from routes.api_scenario_defs import bp_defs as api_scenario_defs_bp
# Версия — показывается в топбаре UI. Меняется при КАЖДОМ изменении кода.
# Нужна для фильтрации истории (пользователь видит только записи своей версии).
VERSION = "1.2.38"
VERSION = "1.2.39"
# Flask-приложение с Jinja2-шаблонами из папки templates/
app = Flask(__name__, template_folder="templates", static_folder="static")