From: miker Date: Fri, 22 Sep 2006 20:16:22 +0000 (+0000) Subject: reporting schema X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=8af627b8ccfc22b8fe58ddf11c7a5c9ea147ac3d;p=evergreen%2Fpines.git reporting schema git-svn-id: svn://svn.open-ils.org/ILS/trunk@6196 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/sql/Pg/reporter-schema.sql b/Open-ILS/src/sql/Pg/reporter-schema.sql new file mode 100644 index 0000000000..ef50d8bf3b --- /dev/null +++ b/Open-ILS/src/sql/Pg/reporter-schema.sql @@ -0,0 +1,85 @@ +DROP SCHEMA reporter CASCADE; + +BEGIN; + +CREATE SCHEMA reporter; + +CREATE TABLE reporter.template_folder ( + id SERIAL PRIMARY KEY, + parent INT REFERENCES reporter.template_folder (id) DEFERRABLE INITIALLY DEFERRED, + owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + name TEXT NOT NULL, + shared BOOL NOT NULL DEFAULT FALSE, + share_with INT REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX rpt_tmpl_fldr_owner_idx ON reporter.template_folder (owner); + +CREATE TABLE reporter.report_folder ( + id SERIAL PRIMARY KEY, + parent INT REFERENCES reporter.report_folder (id) DEFERRABLE INITIALLY DEFERRED, + owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + name TEXT NOT NULL, + shared BOOL NOT NULL DEFAULT FALSE, + share_with INT REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX rpt_rpt_fldr_owner_idx ON reporter.report_folder (owner); + +CREATE TABLE reporter.output_folder ( + id SERIAL PRIMARY KEY, + parent INT REFERENCES reporter.output_folder (id) DEFERRABLE INITIALLY DEFERRED, + owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + name TEXT NOT NULL, + shared BOOL NOT NULL DEFAULT FALSE, + share_with INT REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED +); +CREATE INDEX rpt_output_fldr_owner_idx ON reporter.output_folder (owner); + + +CREATE TABLE reporter.template ( + id SERIAL PRIMARY KEY, + owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + name TEXT NOT NULL, + description TEXT NOT NULL, + data TEXT NOT NULL, + folder INT NOT NULL REFERENCES reporter.template_folder (id) +); +CREATE INDEX rpt_tmpl_owner_idx ON reporter.template (owner); +CREATE INDEX rpt_tmpl_fldr_idx ON reporter.template (folder); + +CREATE TABLE reporter.report ( + id SERIAL PRIMARY KEY, + owner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + create_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + template INT NOT NULL REFERENCES reporter.template (id) DEFERRABLE INITIALLY DEFERRED, + data TEXT NOT NULL, + folder INT NOT NULL REFERENCES reporter.report_folder (id), + recur BOOL NOT NULL DEFAULT FALSE, + recurance INTERVAL +); +CREATE INDEX rpt_rpt_owner_idx ON reporter.report (owner); +CREATE INDEX rpt_rpt_fldr_idx ON reporter.report (folder); + +CREATE TABLE reporter.schedule ( + id SERIAL PRIMARY KEY, + report INT NOT NULL REFERENCES reporter.report (id) DEFERRABLE INITIALLY DEFERRED + folder INT NOT NULL REFERENCES reporter.output_folder (id), + runner INT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + run_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + start_time TIMESTAMP WITH TIME ZONE, + complete_time TIMESTAMP WITH TIME ZONE, + email TEXT, + excel_format BOOL NOT NULL DEFAULT TRUE, + html_format BOOL NOT NULL DEFAULT TRUE, + csv_format BOOL NOT NULL DEFAULT TRUE, + error_code INT, + error_text TEXT +); +CREATE INDEX rpt_sched_runner_idx ON reporter.schedule (runner); +CREATE INDEX rpt_sched_folder_idx ON reporter.schedule (folder); + +COMMIT; +