mirror of
https://gitee.com/wanwujie/sub2api
synced 2026-04-05 07:52:13 +08:00
31 lines
1.5 KiB
MySQL
31 lines
1.5 KiB
MySQL
|
|
-- 066_add_scheduled_test_tables.sql
|
||
|
|
-- Scheduled account test plans and results
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS scheduled_test_plans (
|
||
|
|
id BIGSERIAL PRIMARY KEY,
|
||
|
|
account_id BIGINT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
|
||
|
|
model_id VARCHAR(100) NOT NULL DEFAULT '',
|
||
|
|
cron_expression VARCHAR(100) NOT NULL DEFAULT '*/30 * * * *',
|
||
|
|
enabled BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
max_results INT NOT NULL DEFAULT 50,
|
||
|
|
last_run_at TIMESTAMPTZ,
|
||
|
|
next_run_at TIMESTAMPTZ,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_stp_account_id ON scheduled_test_plans(account_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_stp_enabled_next_run ON scheduled_test_plans(enabled, next_run_at) WHERE enabled = true;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS scheduled_test_results (
|
||
|
|
id BIGSERIAL PRIMARY KEY,
|
||
|
|
plan_id BIGINT NOT NULL REFERENCES scheduled_test_plans(id) ON DELETE CASCADE,
|
||
|
|
status VARCHAR(20) NOT NULL DEFAULT 'success',
|
||
|
|
response_text TEXT NOT NULL DEFAULT '',
|
||
|
|
error_message TEXT NOT NULL DEFAULT '',
|
||
|
|
latency_ms BIGINT NOT NULL DEFAULT 0,
|
||
|
|
started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
finished_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_str_plan_created ON scheduled_test_results(plan_id, created_at DESC);
|