2017-09-14 12:51:26 +02:00
SET statement_timeout = 0 ;
SET lock_timeout = 0 ;
SET idle_in_transaction_session_timeout = 0 ;
SET client_encoding = ' UTF8 ' ;
SET standard_conforming_strings = on ;
SET check_function_bodies = false ;
SET client_min_messages = warning ;
SET row_security = off ;
drop table if exists " DMP " cascade ;
drop table if exists " DMPOrganisation " cascade ;
drop table if exists " DMPProfile " cascade ;
drop table if exists " DMPResearcher " cascade ;
drop table if exists " Dataset " cascade ;
drop table if exists " DatasetProfile " cascade ;
drop table if exists " DatasetProfileRuleset " cascade ;
drop table if exists " DatasetProfileViewstyle " cascade ;
drop table if exists " Organisation " cascade ;
drop table if exists " Project " cascade ;
drop table if exists " Researcher " cascade ;
drop table if exists " Service " cascade ;
drop table if exists " DataRepository " cascade ;
drop table if exists " Registry " cascade ;
drop table if exists " DatasetService " cascade ;
drop table if exists " DatasetRegistry " cascade ;
drop table if exists " DatasetDataRepository " cascade ;
2017-10-18 12:17:56 +02:00
DROP table if exists " UserDMP " cascade ;
DROP table if exists " UserInfo " cascade ;
DROP table if exists " UserAuth " cascade ;
2017-09-14 12:51:26 +02:00
-- CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
-- CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
SET search_path = public , pg_catalog ;
SET default_tablespace = ' ' ;
SET default_with_oids = false ;
CREATE TABLE " DMP " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Previous " uuid ,
" Label " character varying ( 250 ) NOT NULL ,
" Version " integer NOT NULL ,
" Project " uuid NOT NULL ,
" ProfileData " xml ,
" Profile " uuid
) ;
ALTER TABLE " DMP " OWNER TO dmptool ;
COMMENT ON COLUMN " DMP " . " ProfileData " IS ' More data about the DMP as defined by the profile ' ;
CREATE TABLE " DMPOrganisation " (
" DMP " uuid NOT NULL ,
" Organisation " uuid NOT NULL ,
" Role " integer ,
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL
) ;
ALTER TABLE " DMPOrganisation " OWNER TO dmptool ;
COMMENT ON TABLE " DMPOrganisation " IS ' Linking of DMPs to Organisations ' ;
COMMENT ON COLUMN " DMPOrganisation " . " Role " IS ' Enumerator of roles ' ;
CREATE TABLE " DMPProfile " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Definition " xml
) ;
ALTER TABLE " DMPProfile " OWNER TO dmptool ;
CREATE TABLE " DMPResearcher " (
" DMP " uuid NOT NULL ,
" Researcher " uuid NOT NULL ,
" Role " integer ,
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL
) ;
ALTER TABLE " DMPResearcher " OWNER TO dmptool ;
COMMENT ON TABLE " DMPResearcher " IS ' Linking of DMPs to researchers ' ;
COMMENT ON COLUMN " DMPResearcher " . " Role " IS ' Enumerator of roles ' ;
CREATE TABLE " Dataset " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
2017-10-03 16:23:35 +02:00
" DMP " uuid ,
2017-09-14 12:51:26 +02:00
" Uri " character varying ( 250 ) ,
" Properties " xml ,
" Profile " uuid
) ;
ALTER TABLE " Dataset " OWNER TO dmptool ;
COMMENT ON COLUMN " Dataset " . " Uri " IS ' URI of item ' ;
COMMENT ON COLUMN " Dataset " . " Properties " IS ' More data about the dataset such as Uri, data types etc as defined by the profile ' ;
CREATE TABLE " DatasetProfile " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Ruleset " uuid ,
" Viewstyle " uuid ,
" Definition " xml NOT NULL
) ;
2017-10-24 16:34:59 +02:00
-- SHould also force the 1-1 relation between the datasetprofile <-> ruleset and datasetprofile <-> viewstyle
ALTER TABLE " DatasetProfile " ADD CONSTRAINT datasetprofile_unique_ruleset UNIQUE ( " Ruleset " ) ;
ALTER TABLE " DatasetProfile " ADD CONSTRAINT datasetprofile_unique_viewstyle UNIQUE ( " Viewstyle " ) ;
2017-09-14 12:51:26 +02:00
ALTER TABLE " DatasetProfile " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetProfile " IS ' Profiles for dmp datasets ' ;
CREATE TABLE " DatasetProfileRuleset " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Definition " xml NOT NULL
) ;
ALTER TABLE " DatasetProfileRuleset " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetProfileRuleset " IS ' Sets of Rules for dmp dataset profiles ' ;
CREATE TABLE " DatasetProfileViewstyle " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Definition " xml NOT NULL
) ;
ALTER TABLE " DatasetProfileViewstyle " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetProfileViewstyle " IS ' Style sets for dmp dataset profiles ' ;
CREATE TABLE " Organisation " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Abbreviation " character varying ( 50 ) ,
" Reference " xml ,
" Uri " character varying ( 250 ) ,
" Definition " xml
) ;
ALTER TABLE " Organisation " OWNER TO dmptool ;
COMMENT ON TABLE " Organisation " IS ' Table of organizations utilized in the project ' ;
COMMENT ON COLUMN " Organisation " . " ID " IS ' Unique identifier and primary key of item ' ;
COMMENT ON COLUMN " Organisation " . " Label " IS ' A human readable long label of the item ' ;
COMMENT ON COLUMN " Organisation " . " Abbreviation " IS ' A human readable abbreviation of the item ' ;
COMMENT ON COLUMN " Organisation " . " Reference " IS ' Reference to the URI of the item along with information to allow how the item reached the system (e.g. via an external vocabulary) ' ;
COMMENT ON COLUMN " Organisation " . " Uri " IS ' URI of item ' ;
COMMENT ON COLUMN " Organisation " . " Definition " IS ' More data about the Organisation such as web site, type etc ' ;
CREATE TABLE " Project " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Abbreviation " character varying ( 50 ) ,
" Reference " xml ,
" Uri " character varying ( 250 ) ,
" Definition " xml
) ;
ALTER TABLE " Project " OWNER TO dmptool ;
COMMENT ON TABLE " Project " IS ' Table of project managed in the system ' ;
COMMENT ON COLUMN " Project " . " ID " IS ' Unique identifier and primary key of item ' ;
COMMENT ON COLUMN " Project " . " Label " IS ' A human readable long label of the item ' ;
COMMENT ON COLUMN " Project " . " Abbreviation " IS ' A human readable abbreviation of the item ' ;
COMMENT ON COLUMN " Project " . " Reference " IS ' Additional reference data for the item along with information to allow how the item reached the system (e.g. via an external vocabulary) ' ;
COMMENT ON COLUMN " Project " . " Uri " IS ' URI of item ' ;
COMMENT ON COLUMN " Project " . " Definition " IS ' More data about the project such as web site, start/stop, etc ' ;
CREATE TABLE " Researcher " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) NOT NULL ,
" Uri " character varying ( 250 ) ,
" PrimaryEmail " character varying ( 250 ) ,
" Definition " xml ,
" Reference " xml
) ;
ALTER TABLE " Researcher " OWNER TO dmptool ;
COMMENT ON TABLE " Researcher " IS ' Table of Researcher managed in the system ' ;
COMMENT ON COLUMN " Researcher " . " ID " IS ' Unique identifier and primary key of item ' ;
COMMENT ON COLUMN " Researcher " . " Label " IS ' Full name of the researcher (as presented by the system, and composed automatically by data or provided by the reference service) ' ;
COMMENT ON COLUMN " Researcher " . " Uri " IS ' URI of item ' ;
COMMENT ON COLUMN " Researcher " . " Definition " IS ' More data about the researcher such as: email addresses, affiliations etc ' ;
COMMENT ON COLUMN " Researcher " . " Reference " IS ' Additional reference data for the item along with information to allow how the item reached the system (e.g. via an external vocabulary) ' ;
ALTER TABLE ONLY " DMPProfile "
ADD CONSTRAINT " DMPPRofile_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DMP "
ADD CONSTRAINT " DMP_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DatasetProfile "
ADD CONSTRAINT " DatasetProfile_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DatasetProfileRuleset "
ADD CONSTRAINT " DatasetProfileRuleset_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DatasetProfileViewstyle "
ADD CONSTRAINT " DatasetProfileViewstyle_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " Dataset "
ADD CONSTRAINT " Dataset_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " Organisation "
ADD CONSTRAINT " Organisation_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DMPOrganisation "
ADD CONSTRAINT " PKey_DMPOrganisation " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " DMPResearcher "
ADD CONSTRAINT " PKey_DMPResearcher " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " Project "
ADD CONSTRAINT " Project_pkey " PRIMARY KEY ( " ID " ) ;
ALTER TABLE ONLY " Researcher "
ADD CONSTRAINT " Researcher_pkey " PRIMARY KEY ( " ID " ) ;
CREATE INDEX " fki_DMPDMPProfileReference " ON " DMP " USING btree ( " Profile " ) ;
CREATE INDEX " fki_DatasetDatasetProfileReference " ON " Dataset " USING btree ( " Profile " ) ;
ALTER TABLE ONLY " DMP "
ADD CONSTRAINT " DMPDMPProfileReference " FOREIGN KEY ( " Profile " ) REFERENCES " DMPProfile " ( " ID " ) ;
ALTER TABLE ONLY " DMPOrganisation "
ADD CONSTRAINT " DMPOrganisationDMPReference " FOREIGN KEY ( " Organisation " ) REFERENCES " Organisation " ( " ID " ) ;
ALTER TABLE ONLY " DMPOrganisation "
ADD CONSTRAINT " DMPOrganisationOrganisationReference " FOREIGN KEY ( " DMP " ) REFERENCES " DMP " ( " ID " ) ;
ALTER TABLE ONLY " DMP "
ADD CONSTRAINT " DMPProjectReference " FOREIGN KEY ( " Project " ) REFERENCES " Project " ( " ID " ) ;
ALTER TABLE ONLY " DMPResearcher "
ADD CONSTRAINT " DMPResearcherDMPReference " FOREIGN KEY ( " Researcher " ) REFERENCES " Researcher " ( " ID " ) ;
ALTER TABLE ONLY " DMPResearcher "
ADD CONSTRAINT " DMPResearcherResearcherReference " FOREIGN KEY ( " DMP " ) REFERENCES " DMP " ( " ID " ) ;
ALTER TABLE ONLY " Dataset "
ADD CONSTRAINT " DatasetDatasetProfileReference " FOREIGN KEY ( " Profile " ) REFERENCES " DatasetProfile " ( " ID " ) ;
ALTER TABLE ONLY " Dataset "
ADD CONSTRAINT " DatasetDMPReference " FOREIGN KEY ( " DMP " ) REFERENCES " DMP " ( " ID " ) ;
ALTER TABLE ONLY " DatasetProfile "
ADD CONSTRAINT " DatasetProfileDatasetProfileRulesetReference " FOREIGN KEY ( " Ruleset " ) REFERENCES " DatasetProfileRuleset " ( " ID " ) ;
ALTER TABLE ONLY " DatasetProfile "
ADD CONSTRAINT " DatasetProfileDatasetProfileViewstyleReference " FOREIGN KEY ( " Viewstyle " ) REFERENCES " DatasetProfileViewstyle " ( " ID " ) ;
CREATE TABLE " Service " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) ,
" Abbreviation " character varying ( 50 ) ,
" Reference " xml ,
" Uri " character varying ( 250 ) ,
" Definition " xml
) ;
ALTER TABLE " Service " OWNER TO dmptool ;
ALTER TABLE ONLY " Service "
ADD CONSTRAINT " PKey_Service " PRIMARY KEY ( " ID " ) ;
CREATE TABLE " DataRepository " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) ,
" Abbreviation " character varying ( 50 ) ,
" Reference " xml ,
" Uri " character varying ( 250 ) ,
" Definition " xml
) ;
ALTER TABLE " DataRepository " OWNER TO dmptool ;
ALTER TABLE ONLY " DataRepository "
ADD CONSTRAINT " PKey_DataRepository " PRIMARY KEY ( " ID " ) ;
CREATE TABLE " Registry " (
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
" Label " character varying ( 250 ) ,
" Abbreviation " character varying ( 50 ) ,
" Reference " xml ,
" Uri " character varying ( 250 ) ,
" Definition " xml
) ;
ALTER TABLE " Registry " OWNER TO dmptool ;
ALTER TABLE ONLY " Registry "
ADD CONSTRAINT " PKey_Registry " PRIMARY KEY ( " ID " ) ;
CREATE TABLE " DatasetService " (
" Dataset " uuid NOT NULL ,
" Service " uuid NOT NULL ,
" Role " integer ,
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL
) ;
ALTER TABLE " DatasetService " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetService " IS ' Linking Dataset to Service ' ;
CREATE TABLE " DatasetRegistry " (
" Dataset " uuid NOT NULL ,
" Registry " uuid NOT NULL ,
" Role " integer ,
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL
) ;
ALTER TABLE " DatasetRegistry " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetRegistry " IS ' Linking Dataset to Registry ' ;
CREATE TABLE " DatasetDataRepository " (
" Dataset " uuid NOT NULL ,
" DataRepository " uuid NOT NULL ,
" Role " integer ,
" ID " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL
) ;
2017-09-28 11:10:20 +02:00
2017-09-14 12:51:26 +02:00
ALTER TABLE " DatasetDataRepository " OWNER TO dmptool ;
COMMENT ON TABLE " DatasetDataRepository " IS ' Linking Dataset to DataRepository ' ;
ALTER TABLE ONLY " DatasetDataRepository "
ADD CONSTRAINT " DatasetDataRepositoryDatasetReference " FOREIGN KEY ( " Dataset " ) REFERENCES " Dataset " ( " ID " ) ;
ALTER TABLE ONLY " DatasetDataRepository "
ADD CONSTRAINT " DatasetDataRepositoryDataRepositoryReference " FOREIGN KEY ( " DataRepository " ) REFERENCES " DataRepository " ( " ID " ) ;
ALTER TABLE ONLY " DatasetRegistry "
ADD CONSTRAINT " DatasetRegistryDatasetReference " FOREIGN KEY ( " Dataset " ) REFERENCES " Dataset " ( " ID " ) ;
ALTER TABLE ONLY " DatasetRegistry "
ADD CONSTRAINT " DatasetRegistryRegistryReference " FOREIGN KEY ( " Registry " ) REFERENCES " Registry " ( " ID " ) ;
ALTER TABLE ONLY " DatasetService "
ADD CONSTRAINT " DatasetServiceDatasetReference " FOREIGN KEY ( " Dataset " ) REFERENCES " Dataset " ( " ID " ) ;
ALTER TABLE ONLY " DatasetService "
ADD CONSTRAINT " DatasetServiceServiceReference " FOREIGN KEY ( " Service " ) REFERENCES " Service " ( " ID " ) ;
2017-10-12 16:57:52 +02:00
2017-09-28 11:10:20 +02:00
CREATE TABLE " UserInfo " (
2017-10-18 12:17:00 +02:00
" id " uuid DEFAULT uuid_generate_v4 ( ) UNIQUE NOT NULL ,
" email " character varying ( 250 ) UNIQUE NOT NULL ,
2017-10-12 16:57:52 +02:00
" authorization_level " smallint NOT NULL ,
" usertype " smallint NOT NULL ,
" authentication " uuid ,
" verified_email " boolean ,
2017-09-28 11:10:20 +02:00
" name " character varying ( 250 ) ,
2017-10-12 16:57:52 +02:00
" created " timestamp ,
" lastloggedin " timestamp ,
2017-09-28 11:10:20 +02:00
" additionalinfo " xml ,
2017-10-18 12:17:00 +02:00
PRIMARY KEY ( id )
2017-10-12 16:57:52 +02:00
) ;
COMMENT ON COLUMN " UserInfo " . " authorization_level " IS ' This stores the authorization level of the user: 0 admin, 1 user, being able to be extended furthermore ' ;
COMMENT ON COLUMN " UserInfo " . " usertype " IS ' This stores the type of user: 0 -> internal, 1 external ' ;
CREATE TABLE " UserAuth " (
2017-10-12 17:17:34 +02:00
" id " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL UNIQUE ,
2017-10-12 16:57:52 +02:00
" username " character varying ( 200 ) NOT NULL ,
" password " character varying ( 250 ) NOT NULL ,
2017-10-12 17:17:34 +02:00
PRIMARY KEY ( username )
2017-09-28 11:10:20 +02:00
) ;
2017-10-12 16:57:52 +02:00
CREATE INDEX idx_userauth_username ON " UserAuth " ( username ) ;
ALTER TABLE " UserInfo " ADD CONSTRAINT fkey_userinfo_userauth FOREIGN KEY ( " authentication " ) REFERENCES " UserAuth " ( id ) ;
COMMENT ON COLUMN " UserAuth " . " password " IS ' This field stores a password hash ' ;
2017-10-18 12:17:00 +02:00
create table " UserDMP " (
" id " uuid DEFAULT uuid_generate_v4 ( ) NOT NULL ,
2017-10-19 01:45:19 +02:00
" usr " uuid NOT NULL ,
2017-10-18 12:17:00 +02:00
" dmp " uuid NOT NUll ,
" role " integer
) ;
2017-10-18 23:52:15 +02:00
ALTER TABLE " UserDMP " ADD CONSTRAINT fkey_userdmp_user FOREIGN KEY ( usr ) REFERENCES " UserInfo " ( " id " ) ;
ALTER TABLE " UserDMP " ADD CONSTRAINT fkey_userdmp_dmp FOREIGN KEY ( dmp ) REFERENCES " DMP " ( " ID " ) ;
2017-10-18 12:17:00 +02:00
2017-10-12 16:57:52 +02:00
ALTER TABLE " UserInfo " OWNER TO dmptool ;
ALTER TABLE " UserAuth " OWNER TO dmptool ;
2017-10-18 12:17:00 +02:00
ALTER TABLE " UserDMP " OWNER TO dmptool ;
2017-10-12 16:57:52 +02:00
2017-09-28 11:10:20 +02:00
2017-09-14 12:51:26 +02:00
REVOKE ALL ON SCHEMA public FROM PUBLIC ;
REVOKE ALL ON SCHEMA public FROM postgres ;
GRANT ALL ON SCHEMA public TO postgres ;
GRANT ALL ON SCHEMA public TO PUBLIC ;