v1.0.95: full test data — op_uid, user_email, app_version, params saved to runs

This commit is contained in:
2026-07-28 10:12:16 +04:00
parent 163dd02419
commit 99b0a79cbd
4 changed files with 43 additions and 22 deletions
+16 -3
View File
@@ -8,10 +8,12 @@
Таблица runs — история запусков операций:
- id, created_at
- client_id, stand (изоляция по пользователю и стенду)
- user_email (кто запустил)
- svc_id, svc_name, op_name, svc_op_id
- instance_uid, display_name
- instance_uid, display_name, op_uid
- status (OK/FAIL/TIMEOUT), duration_sec, error_log
- params (JSONB), stages (JSONB)
- app_version (версия приложения)
"""
import os
@@ -23,17 +25,20 @@ CREATE TABLE IF NOT EXISTS runs (
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
client_id VARCHAR(64) NOT NULL,
stand VARCHAR(16) NOT NULL,
user_email VARCHAR(128),
svc_id INTEGER NOT NULL,
svc_name VARCHAR(128),
op_name VARCHAR(32) NOT NULL,
svc_op_id INTEGER,
op_uid VARCHAR(64),
instance_uid VARCHAR(64),
display_name VARCHAR(255),
status VARCHAR(16) NOT NULL,
duration_sec DOUBLE PRECISION,
error_log TEXT,
params JSONB,
stages JSONB
stages JSONB,
app_version VARCHAR(16)
);
CREATE INDEX IF NOT EXISTS idx_runs_client_stand
@@ -46,9 +51,16 @@ CREATE INDEX IF NOT EXISTS idx_runs_created
ON runs (created_at);
"""
# Миграция для существующих таблиц (добавляем колонки если их нет)
MIGRATION_SQL = """
ALTER TABLE runs ADD COLUMN IF NOT EXISTS op_uid VARCHAR(64);
ALTER TABLE runs ADD COLUMN IF NOT EXISTS user_email VARCHAR(128);
ALTER TABLE runs ADD COLUMN IF NOT EXISTS app_version VARCHAR(16);
"""
def init_db():
"""Применить схему — идемпотентно, безопасно для конкурентного вызова."""
"""Применить схему + миграции — идемпотентно, безопасно для конкурентного вызова."""
if not os.getenv("DB_USER"):
print("[DB] DB_USER not set — skipping init", flush=True)
return
@@ -61,6 +73,7 @@ def init_db():
try:
cur = conn.cursor()
cur.execute(SCHEMA_SQL)
cur.execute(MIGRATION_SQL)
conn.commit()
cur.close()
print("[DB] Schema initialized", flush=True)