52 lines
2.6 KiB
SQL
52 lines
2.6 KiB
SQL
-- +goose Up
|
|
-- Landscape Program: seed the category and dataset groups (input slots and
|
|
-- node outputs; codes must match internal/landscape/graph.go), and store runs.
|
|
INSERT INTO categories (code, name, description)
|
|
VALUES ('landscape', 'Ландшафтная программа', 'Входные и результирующие растры Ландшафтной программы')
|
|
ON CONFLICT (code) DO NOTHING;
|
|
|
|
INSERT INTO dataset_groups (code, name) VALUES
|
|
('lp-z-biodiversity', 'Z Biodiversity'), ('lp-z-lcr', 'Z LCR'), ('lp-z-soil-protection', 'Z Soil Protection'), ('lp-z-wr', 'Z Water Resources'),
|
|
('lp-u-surf-water', 'U Surface Water'), ('lp-u-soil', 'U Soil'), ('lp-u-crop', 'U Crop'), ('lp-u-veg', 'U Vegetation'),
|
|
('lp-p-irrigation', 'P Irrigation'), ('lp-p-snow', 'P Snow'), ('lp-p-crop', 'P Crop'), ('lp-p-pasture', 'P Pasture'), ('lp-p-tourism', 'P Tourism'),
|
|
('lp-z-integrated', 'Z Integrated'), ('lp-u-integrated', 'U Integrated'), ('lp-z-max', 'Z Max'), ('lp-u-max', 'U Max'),
|
|
('lp-e', 'E Ecological Constraint'),
|
|
('lp-c-irrigation', 'C Irrigation'), ('lp-c-snow', 'C Snow'), ('lp-c-crop', 'C Crop'), ('lp-c-pasture', 'C Pasture'), ('lp-c-tourism', 'C Tourism'),
|
|
('lp-p-max', 'P Max'),
|
|
('lp-v1-conservative', 'V1 Conservative'), ('lp-v2-balanced', 'V2 Balanced'), ('lp-v3-development', 'V3 Development'), ('lp-c-max', 'C Max')
|
|
ON CONFLICT (code) DO NOTHING;
|
|
|
|
CREATE TABLE lp_runs (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
status VARCHAR(32) NOT NULL,
|
|
from_stage SMALLINT,
|
|
params JSONB NOT NULL,
|
|
overrides JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
error TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
started_at TIMESTAMPTZ,
|
|
finished_at TIMESTAMPTZ
|
|
);
|
|
CREATE INDEX idx_lp_runs_created_at ON lp_runs (created_at DESC);
|
|
|
|
CREATE TABLE lp_run_nodes (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
run_id UUID NOT NULL REFERENCES lp_runs (id) ON DELETE CASCADE,
|
|
node_code VARCHAR(8) NOT NULL,
|
|
stage SMALLINT NOT NULL,
|
|
status VARCHAR(32) NOT NULL,
|
|
fingerprint TEXT NOT NULL DEFAULT '',
|
|
input_datasets JSONB NOT NULL DEFAULT '[]'::jsonb,
|
|
output_datasets JSONB,
|
|
error TEXT,
|
|
started_at TIMESTAMPTZ,
|
|
finished_at TIMESTAMPTZ,
|
|
UNIQUE (run_id, node_code)
|
|
);
|
|
CREATE INDEX idx_lp_run_nodes_lookup ON lp_run_nodes (node_code, fingerprint, status, finished_at DESC);
|
|
|
|
-- +goose Down
|
|
DROP TABLE lp_run_nodes;
|
|
DROP TABLE lp_runs;
|
|
-- Seeded category/groups are left in place (datasets may reference them).
|