v1.0.95: full test data — op_uid, user_email, app_version, params saved to runs
This commit is contained in:
+16
-3
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user