mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-31 02:01:16 +00:00
postgres_schemas: Add rules for cascading deletes
Add cascading deletes to foreign keys as well as a rule to delete large objects when artifacts are deleted. Deleting a run entry should delete all dependent data of that run.
This commit is contained in:
parent
879a491691
commit
9edb6b20f0
@ -1,4 +1,4 @@
|
|||||||
--!VERSION!1.5!ENDVERSION!
|
--!VERSION!1.6!ENDVERSION!
|
||||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||||
CREATE EXTENSION IF NOT EXISTS "lo";
|
CREATE EXTENSION IF NOT EXISTS "lo";
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ CREATE TABLE Runs (
|
|||||||
|
|
||||||
CREATE TABLE Jobs (
|
CREATE TABLE Jobs (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
status status_enum,
|
status status_enum,
|
||||||
retry int,
|
retry int,
|
||||||
label text,
|
label text,
|
||||||
@ -76,7 +76,7 @@ CREATE TABLE Jobs (
|
|||||||
|
|
||||||
CREATE TABLE Targets (
|
CREATE TABLE Targets (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
target text,
|
target text,
|
||||||
modules text[],
|
modules text[],
|
||||||
cpus text[],
|
cpus text[],
|
||||||
@ -103,7 +103,7 @@ CREATE TABLE Targets (
|
|||||||
|
|
||||||
CREATE TABLE Events (
|
CREATE TABLE Events (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
job_oid uuid references Jobs(oid),
|
job_oid uuid references Jobs(oid),
|
||||||
timestamp timestamp,
|
timestamp timestamp,
|
||||||
message text,
|
message text,
|
||||||
@ -114,28 +114,28 @@ CREATE TABLE Events (
|
|||||||
|
|
||||||
CREATE TABLE Resource_Getters (
|
CREATE TABLE Resource_Getters (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
name text,
|
name text,
|
||||||
PRIMARY KEY (oid)
|
PRIMARY KEY (oid)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Augmentations (
|
CREATE TABLE Augmentations (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
name text,
|
name text,
|
||||||
PRIMARY KEY (oid)
|
PRIMARY KEY (oid)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Jobs_Augs (
|
CREATE TABLE Jobs_Augs (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
job_oid uuid NOT NULL references Jobs(oid),
|
job_oid uuid NOT NULL references Jobs(oid) ON DELETE CASCADE,
|
||||||
augmentation_oid uuid NOT NULL references Augmentations(oid),
|
augmentation_oid uuid NOT NULL references Augmentations(oid) ON DELETE CASCADE,
|
||||||
PRIMARY KEY (oid)
|
PRIMARY KEY (oid)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Metrics (
|
CREATE TABLE Metrics (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
job_oid uuid references Jobs(oid),
|
job_oid uuid references Jobs(oid),
|
||||||
name text,
|
name text,
|
||||||
value double precision,
|
value double precision,
|
||||||
@ -158,7 +158,7 @@ CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON LargeObjects
|
|||||||
|
|
||||||
CREATE TABLE Artifacts (
|
CREATE TABLE Artifacts (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
job_oid uuid references Jobs(oid),
|
job_oid uuid references Jobs(oid),
|
||||||
name text,
|
name text,
|
||||||
large_object_uuid uuid NOT NULL references LargeObjects(oid),
|
large_object_uuid uuid NOT NULL references LargeObjects(oid),
|
||||||
@ -170,12 +170,18 @@ CREATE TABLE Artifacts (
|
|||||||
PRIMARY KEY (oid)
|
PRIMARY KEY (oid)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE RULE del_lo AS
|
||||||
|
ON DELETE TO Artifacts
|
||||||
|
DO DELETE FROM LargeObjects
|
||||||
|
WHERE LargeObjects.oid = old.large_object_uuid
|
||||||
|
;
|
||||||
|
|
||||||
CREATE TABLE Classifiers (
|
CREATE TABLE Classifiers (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
artifact_oid uuid references Artifacts(oid),
|
artifact_oid uuid references Artifacts(oid) ON DELETE CASCADE,
|
||||||
metric_oid uuid references Metrics(oid),
|
metric_oid uuid references Metrics(oid) ON DELETE CASCADE,
|
||||||
job_oid uuid references Jobs(oid),
|
job_oid uuid references Jobs(oid) ON DELETE CASCADE,
|
||||||
run_oid uuid references Runs(oid),
|
run_oid uuid references Runs(oid) ON DELETE CASCADE,
|
||||||
key text,
|
key text,
|
||||||
value text,
|
value text,
|
||||||
PRIMARY KEY (oid)
|
PRIMARY KEY (oid)
|
||||||
@ -183,7 +189,7 @@ CREATE TABLE Classifiers (
|
|||||||
|
|
||||||
CREATE TABLE Parameters (
|
CREATE TABLE Parameters (
|
||||||
oid uuid NOT NULL,
|
oid uuid NOT NULL,
|
||||||
run_oid uuid NOT NULL references Runs(oid),
|
run_oid uuid NOT NULL references Runs(oid) ON DELETE CASCADE,
|
||||||
job_oid uuid references Jobs(oid),
|
job_oid uuid references Jobs(oid),
|
||||||
augmentation_oid uuid references Augmentations(oid),
|
augmentation_oid uuid references Augmentations(oid),
|
||||||
resource_getter_oid uuid references Resource_Getters(oid),
|
resource_getter_oid uuid references Resource_Getters(oid),
|
||||||
|
109
wa/commands/postgres_schemas/postgres_schema_update_v1.6.sql
Normal file
109
wa/commands/postgres_schemas/postgres_schema_update_v1.6.sql
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
ALTER TABLE jobs
|
||||||
|
DROP CONSTRAINT jobs_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT jobs_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE targets
|
||||||
|
DROP CONSTRAINT targets_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT targets_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE events
|
||||||
|
DROP CONSTRAINT events_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT events_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE resource_getters
|
||||||
|
DROP CONSTRAINT resource_getters_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT resource_getters_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE augmentations
|
||||||
|
DROP CONSTRAINT augmentations_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT augmentations_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE jobs_augs
|
||||||
|
DROP CONSTRAINT jobs_augs_job_oid_fkey,
|
||||||
|
DROP CONSTRAINT jobs_augs_augmentation_oid_fkey,
|
||||||
|
ADD CONSTRAINT jobs_augs_job_oid_fkey
|
||||||
|
FOREIGN KEY (job_oid)
|
||||||
|
REFERENCES Jobs(oid)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
ADD CONSTRAINT jobs_augs_augmentation_oid_fkey
|
||||||
|
FOREIGN KEY (augmentation_oid)
|
||||||
|
REFERENCES Augmentations(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE metrics
|
||||||
|
DROP CONSTRAINT metrics_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT metrics_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE artifacts
|
||||||
|
DROP CONSTRAINT artifacts_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT artifacts_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE RULE del_lo AS
|
||||||
|
ON DELETE TO Artifacts
|
||||||
|
DO DELETE FROM LargeObjects
|
||||||
|
WHERE LargeObjects.oid = old.large_object_uuid
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE classifiers
|
||||||
|
DROP CONSTRAINT classifiers_artifact_oid_fkey,
|
||||||
|
DROP CONSTRAINT classifiers_metric_oid_fkey,
|
||||||
|
DROP CONSTRAINT classifiers_job_oid_fkey,
|
||||||
|
DROP CONSTRAINT classifiers_run_oid_fkey,
|
||||||
|
|
||||||
|
ADD CONSTRAINT classifiers_artifact_oid_fkey
|
||||||
|
FOREIGN KEY (artifact_oid)
|
||||||
|
REFERENCES artifacts(oid)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
|
||||||
|
ADD CONSTRAINT classifiers_metric_oid_fkey
|
||||||
|
FOREIGN KEY (metric_oid)
|
||||||
|
REFERENCES metrics(oid)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
|
||||||
|
ADD CONSTRAINT classifiers_job_oid_fkey
|
||||||
|
FOREIGN KEY (job_oid)
|
||||||
|
REFERENCES jobs(oid)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
|
||||||
|
ADD CONSTRAINT classifiers_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE parameters
|
||||||
|
DROP CONSTRAINT parameters_run_oid_fkey,
|
||||||
|
ADD CONSTRAINT parameters_run_oid_fkey
|
||||||
|
FOREIGN KEY (run_oid)
|
||||||
|
REFERENCES runs(oid)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
;
|
@ -22,3 +22,7 @@
|
|||||||
during the run.
|
during the run.
|
||||||
## 1.5
|
## 1.5
|
||||||
- Change the type of the "hostid" in TargetInfo from Int to Bigint.
|
- Change the type of the "hostid" in TargetInfo from Int to Bigint.
|
||||||
|
## 1.6
|
||||||
|
- Add cascading deletes to most tables to allow easy deletion of a run
|
||||||
|
and its associated data
|
||||||
|
- Add rule to delete associated large object on deletion of artifact
|
Loading…
x
Reference in New Issue
Block a user