38 lines
1.3 KiB
SQL
38 lines
1.3 KiB
SQL
-- Usage tracking tables migrated from the Node.js backend.
|
|
|
|
CREATE TABLE IF NOT EXISTS usage_logs (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
downstream_key_id BIGINT,
|
|
model TEXT,
|
|
prompt_tokens BIGINT DEFAULT 0,
|
|
completion_tokens BIGINT DEFAULT 0,
|
|
total_tokens BIGINT DEFAULT 0,
|
|
cost DOUBLE PRECISION DEFAULT 0.0,
|
|
created_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT),
|
|
FOREIGN KEY (downstream_key_id) REFERENCES downstream_api_keys(id) ON DELETE SET NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS usage_logs_downstream_key_created_idx
|
|
ON usage_logs (downstream_key_id, created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS usage_logs_created_idx
|
|
ON usage_logs (created_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS usage_daily_snapshots (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
local_day TEXT NOT NULL,
|
|
downstream_key_id BIGINT,
|
|
request_count BIGINT NOT NULL DEFAULT 0,
|
|
prompt_tokens BIGINT NOT NULL DEFAULT 0,
|
|
completion_tokens BIGINT NOT NULL DEFAULT 0,
|
|
total_tokens BIGINT NOT NULL DEFAULT 0,
|
|
total_cost DOUBLE PRECISION NOT NULL DEFAULT 0.0,
|
|
created_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT),
|
|
updated_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT),
|
|
UNIQUE(),
|
|
FOREIGN KEY (downstream_key_id) REFERENCES downstream_api_keys(id) ON DELETE SET NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS usage_daily_snapshots_day_idx
|
|
ON usage_daily_snapshots (local_day);
|