mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-07-11 17:43:35 +01:00
postgres: Update schema to v1.2
Update the postgres database schema: - Rename "resourcegetters" schema to "resource_getters" for consistency - Rename "retreies" colum to "retry" to better relflect it purpose - Store additional information including: - POD serialization data - Missing target information - JSON formatted runstate
This commit is contained in:
wa
192
wa/commands/postgres_schemas/postgres_schema.sql
Normal file
192
wa/commands/postgres_schemas/postgres_schema.sql
Normal file
@ -0,0 +1,192 @@
|
||||
--!VERSION!1.2!ENDVERSION!
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
CREATE EXTENSION IF NOT EXISTS "lo";
|
||||
|
||||
-- In future, it may be useful to implement rules on which Parameter oid fields can be none depeendent on the value in the type column;
|
||||
|
||||
DROP TABLE IF EXISTS DatabaseMeta;
|
||||
DROP TABLE IF EXISTS Parameters;
|
||||
DROP TABLE IF EXISTS Classifiers;
|
||||
DROP TABLE IF EXISTS LargeObjects;
|
||||
DROP TABLE IF EXISTS Artifacts;
|
||||
DROP TABLE IF EXISTS Metrics;
|
||||
DROP TABLE IF EXISTS Augmentations;
|
||||
DROP TABLE IF EXISTS Jobs_Augs;
|
||||
DROP TABLE IF EXISTS ResourceGetters;
|
||||
DROP TABLE IF EXISTS Resource_Getters;
|
||||
DROP TABLE IF EXISTS Events;
|
||||
DROP TABLE IF EXISTS Targets;
|
||||
DROP TABLE IF EXISTS Jobs;
|
||||
DROP TABLE IF EXISTS Runs;
|
||||
|
||||
DROP TYPE IF EXISTS status_enum;
|
||||
DROP TYPE IF EXISTS param_enum;
|
||||
|
||||
CREATE TYPE status_enum AS ENUM ('UNKNOWN(0)','NEW(1)','PENDING(2)','STARTED(3)','CONNECTED(4)', 'INITIALIZED(5)', 'RUNNING(6)', 'OK(7)', 'PARTIAL(8)', 'FAILED(9)', 'ABORTED(10)', 'SKIPPED(11)');
|
||||
|
||||
CREATE TYPE param_enum AS ENUM ('workload', 'resource_getter', 'augmentation', 'device', 'runtime', 'boot');
|
||||
|
||||
-- In future, it might be useful to create an ENUM type for the artifact kind, or simply a generic enum type;
|
||||
|
||||
CREATE TABLE DatabaseMeta (
|
||||
oid uuid NOT NULL,
|
||||
schema_major int,
|
||||
schema_minor int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Runs (
|
||||
oid uuid NOT NULL,
|
||||
event_summary text,
|
||||
basepath text,
|
||||
status status_enum,
|
||||
timestamp timestamp,
|
||||
run_name text,
|
||||
project text,
|
||||
project_stage text,
|
||||
retry_on_status status_enum[],
|
||||
max_retries int,
|
||||
bail_on_init_failure boolean,
|
||||
allow_phone_home boolean,
|
||||
run_uuid uuid,
|
||||
start_time timestamp,
|
||||
end_time timestamp,
|
||||
duration float,
|
||||
metadata jsonb,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
state jsonb,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Jobs (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
status status_enum,
|
||||
retry int,
|
||||
label text,
|
||||
job_id text,
|
||||
iterations int,
|
||||
workload_name text,
|
||||
metadata jsonb,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Targets (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
target text,
|
||||
cpus text[],
|
||||
os text,
|
||||
os_version jsonb,
|
||||
hostid int,
|
||||
hostname text,
|
||||
abi text,
|
||||
is_rooted boolean,
|
||||
kernel_version text,
|
||||
kernel_release text,
|
||||
kernel_sha1 text,
|
||||
kernel_config text[],
|
||||
sched_features text[],
|
||||
page_size_kb int,
|
||||
screen_resolution int[],
|
||||
prop json,
|
||||
android_id text,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Events (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
job_oid uuid references Jobs(oid),
|
||||
timestamp timestamp,
|
||||
message text,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Resource_Getters (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
name text,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Augmentations (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
name text,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Jobs_Augs (
|
||||
oid uuid NOT NULL,
|
||||
job_oid uuid NOT NULL references Jobs(oid),
|
||||
augmentation_oid uuid NOT NULL references Augmentations(oid),
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Metrics (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
job_oid uuid references Jobs(oid),
|
||||
name text,
|
||||
value double precision,
|
||||
units text,
|
||||
lower_is_better boolean,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE LargeObjects (
|
||||
oid uuid NOT NULL,
|
||||
lo_oid lo NOT NULL,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
-- Trigger that allows you to manage large objects from the LO table directly;
|
||||
CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON LargeObjects
|
||||
FOR EACH ROW EXECUTE PROCEDURE lo_manage(lo_oid);
|
||||
|
||||
CREATE TABLE Artifacts (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
job_oid uuid references Jobs(oid),
|
||||
name text,
|
||||
large_object_uuid uuid NOT NULL references LargeObjects(oid),
|
||||
description text,
|
||||
kind text,
|
||||
_pod_version int,
|
||||
_pod_serialization_version int,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Classifiers (
|
||||
oid uuid NOT NULL,
|
||||
artifact_oid uuid references Artifacts(oid),
|
||||
metric_oid uuid references Metrics(oid),
|
||||
job_oid uuid references Jobs(oid),
|
||||
run_oid uuid references Runs(oid),
|
||||
key text,
|
||||
value text,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
||||
|
||||
CREATE TABLE Parameters (
|
||||
oid uuid NOT NULL,
|
||||
run_oid uuid NOT NULL references Runs(oid),
|
||||
job_oid uuid references Jobs(oid),
|
||||
augmentation_oid uuid references Augmentations(oid),
|
||||
resource_getter_oid uuid references Resource_Getters(oid),
|
||||
name text,
|
||||
value text,
|
||||
value_type text,
|
||||
type param_enum,
|
||||
PRIMARY KEY (oid)
|
||||
);
|
Reference in New Issue
Block a user