46 lines
1.5 KiB
PL/PgSQL
46 lines
1.5 KiB
PL/PgSQL
-- This is the main DB, it should be automatically created --
|
|
|
|
BEGIN;
|
|
|
|
CREATE TABLE resource_types(
|
|
id text PRIMARY KEY,
|
|
name text NOT NULL,
|
|
content_type text NOT NULL DEFAULT 'text/plain'
|
|
);
|
|
|
|
INSERT INTO resource_types(id, name, content_type) VALUES
|
|
('transformation_rule_xslt', 'Transformation Rules (xslt)', 'application/xml'),
|
|
('transformation_rule_legacy', 'Transformation Rules (legacy)', 'text/plain'),
|
|
('cleaning_rule', 'Cleaning Rules', 'application/xml'),
|
|
('hadoop_job_configuration', 'Hadoop Job Configurations', 'application/xml'),
|
|
('dedup_configuration', 'Dedup Configurations', 'application/json'),
|
|
('wf_template', 'Workflow Templates', 'application/json'),
|
|
('email_template', 'Email Templates', 'application/json');
|
|
|
|
CREATE TABLE resources (
|
|
id text PRIMARY KEY,
|
|
name text NOT NULL,
|
|
description text,
|
|
content text NOT NULL DEFAULT '',
|
|
type text NOT NULL REFERENCES resource_types(id),
|
|
subtype text,
|
|
creation_date timestamp NOT NULL DEFAULT now(),
|
|
modification_date timestamp NOT NULL DEFAULT now(),
|
|
CONSTRAINT unique_name_type_constraint UNIQUE (name, type)
|
|
);
|
|
|
|
CREATE VIEW resource_types_view AS (
|
|
SELECT
|
|
t.id AS id,
|
|
t.name AS name,
|
|
t.content_type AS content_type,
|
|
count(r.id) AS count,
|
|
true AS simple
|
|
FROM resource_types t
|
|
LEFT OUTER JOIN resources r ON (r.type = t.id)
|
|
GROUP BY t.id, t.name
|
|
ORDER BY t.name
|
|
);
|
|
|
|
COMMIT;
|