33 lines
1.0 KiB
SQL
33 lines
1.0 KiB
SQL
CREATE TABLE IF NOT EXISTS unidesk_nodes (
|
|
provider_id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
labels JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
status TEXT NOT NULL,
|
|
connected_at TIMESTAMPTZ,
|
|
last_heartbeat TIMESTAMPTZ,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS unidesk_events (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
type TEXT NOT NULL,
|
|
source TEXT NOT NULL,
|
|
payload JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS unidesk_tasks (
|
|
id TEXT PRIMARY KEY,
|
|
provider_id TEXT NOT NULL,
|
|
command TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
payload JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
result JSONB,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_unidesk_nodes_status ON unidesk_nodes(status);
|
|
CREATE INDEX IF NOT EXISTS idx_unidesk_events_created_at ON unidesk_events(created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_unidesk_tasks_provider_status ON unidesk_tasks(provider_id, status);
|