Simplified database deployment scripts
This commit is contained in:
parent
af62e192ae
commit
08bf30b79b
|
@ -3,6 +3,6 @@ setlocal
|
|||
cd ..
|
||||
for /F "tokens=*" %%p in ('type Docker\dmp-db.env') do SET %%p
|
||||
psql -d postgres -U postgres -w --set=POSTGRES_USER=%POSTGRES_USER% --set=POSTGRES_PASSWORD=%POSTGRES_PASSWORD% --set=POSTGRES_DB=%POSTGRES_DB% -f main/createDatabase.sql
|
||||
psql -d %POSTGRES_DB% -U %POSTGRES_USER% --set=POSTGRES_USER=%POSTGRES_USER% -w -f main/DataManagementPlanDB.sql
|
||||
for /R "updates" %%f in (*.sql) do psql --set=ADMIN_USERNAME=%ADMIN_USERNAME% --set=ADMIN_PASSWORD=%ADMIN_PASSWORD% --set=POSTGRES_USER=%POSTGRES_USER% -d %POSTGRES_DB% -U %POSTGRES_USER% -w -f %%f
|
||||
psql -d %POSTGRES_DB% -U %POSTGRES_USER% --set=POSTGRES_USER=%POSTGRES_USER% -w -f main/dmp-dump.sql
|
||||
psql --set=ADMIN_USERNAME=%ADMIN_USERNAME% --set=ADMIN_PASSWORD=%ADMIN_PASSWORD% --set=POSTGRES_USER=%POSTGRES_USER% -d %POSTGRES_DB% -U %POSTGRES_USER% -w -f main/data-dump.sql
|
||||
endlocal
|
|
@ -1,7 +1,2 @@
|
|||
psql -d $POSTGRES_DB -U $POSTGRES_USER --set=POSTGRES_USER="$POSTGRES_USER" -f main/DataManagementPlanDB.sql;
|
||||
for j in $(ls updates); do
|
||||
for i in $(ls updates/$j/*.sql); do
|
||||
echo $i
|
||||
psql --set=ADMIN_USERNAME="$ADMIN_USERNAME" --set=ADMIN_PASSWORD="$ADMIN_PASSWORD" --set=POSTGRES_USER="$POSTGRES_USER" -d $POSTGRES_DB -U $POSTGRES_USER -f $i;
|
||||
done
|
||||
done
|
||||
psql -d $POSTGRES_DB -U $POSTGRES_USER --set=POSTGRES_USER="$POSTGRES_USER" -f main/dmp-dump.sql;
|
||||
psql --set=ADMIN_USERNAME="$ADMIN_USERNAME" --set=ADMIN_PASSWORD="$ADMIN_PASSWORD" -d $POSTGRES_DB -U $POSTGRES_USER -f main/data-dump.sql;
|
||||
|
|
|
@ -1,557 +0,0 @@
|
|||
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;
|
||||
DROP table if exists "UserDMP" cascade;
|
||||
DROP table if exists "UserInfo" cascade;
|
||||
DROP table if exists "UserAuth" cascade;
|
||||
|
||||
|
||||
|
||||
-- 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,
|
||||
"Creator" uuid not null,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Description" text,
|
||||
"Profile" uuid
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "DMP" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
|
||||
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,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "DMPProfile" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
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,
|
||||
"DMP" uuid,
|
||||
"Uri" character varying(250),
|
||||
"Properties" xml,
|
||||
"Reference" xml,
|
||||
"Creator" uuid not null,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Description" text,
|
||||
"Profile" uuid
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "Dataset" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
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,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Description" text,
|
||||
"Definition" xml NOT NULL
|
||||
);
|
||||
|
||||
-- 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");
|
||||
|
||||
ALTER TABLE "DatasetProfile" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
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),
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "Organisation" OWNER TO :POSTGRES_USER;
|
||||
|
||||
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),
|
||||
"CreationUser" uuid not null,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"StartDate" timestamp,
|
||||
"EndDate" timestamp,
|
||||
"Description" text,
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "Project" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
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,
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Reference" xml
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "Researcher" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
|
||||
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),
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
ALTER TABLE "Service" OWNER TO :POSTGRES_USER;
|
||||
|
||||
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),
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
ALTER TABLE "DataRepository" OWNER TO :POSTGRES_USER;
|
||||
|
||||
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),
|
||||
"Status" smallint not null default 0,
|
||||
"Created" timestamp not null default NOW(),
|
||||
"Modified" timestamp not null default NOW(),
|
||||
"Definition" xml
|
||||
);
|
||||
|
||||
ALTER TABLE "Registry" OWNER TO :POSTGRES_USER;
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
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 :POSTGRES_USER;
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "DatasetDataRepository" OWNER TO :POSTGRES_USER;
|
||||
|
||||
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");
|
||||
|
||||
|
||||
|
||||
CREATE TABLE "UserInfo" (
|
||||
"id" uuid DEFAULT uuid_generate_v4() UNIQUE NOT NULL,
|
||||
"email" character varying(250) UNIQUE NOT NULL,
|
||||
"authorization_level" smallint NOT NULL,
|
||||
"usertype" smallint NOT NULL,
|
||||
"authentication" uuid,
|
||||
"verified_email" boolean,
|
||||
"name" character varying(250),
|
||||
"created" timestamp not null,
|
||||
"lastloggedin" timestamp,
|
||||
"additionalinfo" xml,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
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" (
|
||||
"id" uuid DEFAULT uuid_generate_v4() NOT NULL UNIQUE,
|
||||
"username" character varying(200) NOT NULL,
|
||||
"password" character varying(250) NOT NULL,
|
||||
PRIMARY KEY (username)
|
||||
);
|
||||
|
||||
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';
|
||||
|
||||
|
||||
create table "UserDMP" (
|
||||
"id" uuid DEFAULT uuid_generate_v4() NOT NULL,
|
||||
"usr" uuid NOT NULL,
|
||||
"dmp" uuid NOT NUll,
|
||||
"role" integer
|
||||
);
|
||||
|
||||
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");
|
||||
|
||||
|
||||
ALTER TABLE "DMP" ADD CONSTRAINT fk_dmp_creator FOREIGN KEY ("Creator") REFERENCES "UserInfo"(id);
|
||||
ALTER TABLE "Dataset" ADD CONSTRAINT fk_dataset_creator FOREIGN KEY ("Creator") REFERENCES "UserInfo"(id);
|
||||
ALTER TABLE "Project" ADD CONSTRAINT fk_project_creator FOREIGN KEY ("CreationUser") REFERENCES "UserInfo"(id);
|
||||
|
||||
|
||||
|
||||
ALTER TABLE "UserInfo" OWNER TO :POSTGRES_USER;
|
||||
ALTER TABLE "UserAuth" OWNER TO :POSTGRES_USER;
|
||||
ALTER TABLE "UserDMP" OWNER TO :POSTGRES_USER;
|
||||
|
||||
|
||||
|
||||
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;
|
||||
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
INSERT INTO public."UserInfo"(email, authorization_level, usertype, name, created, additionalinfo) VALUES ('fake@email.org', 1, 1, :'ADMIN_USERNAME', now(), '{}');
|
||||
|
||||
INSERT INTO public."Credential" VALUES (uuid_generate_v4(), 0, 5, :'ADMIN_USERNAME', :'ADMIN_PASSWORD', now(), now(), (SELECT public."UserInfo"."id" FROM public."UserInfo" WHERE name = :'ADMIN_USERNAME'), 'dmp');
|
||||
|
||||
INSERT INTO public."UserRole"("Role", "UserId") VALUES (2, (SELECT public."UserInfo"."id" FROM public."UserInfo" WHERE name = :'ADMIN_USERNAME'));
|
||||
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Australian Research Council', '10.13039/501100000923');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('European Commission', '10.13039/501100000780');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Fundação para a Ciência e a Tecnologia', '10.13039/501100001871');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Ministarstvo Prosvete, Nauke i Tehnološkog Razvoja', '10.13039/501100004564');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Ministarstvo Znanosti, Obrazovanja i Sporta', '10.13039/501100006588');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('National Health and Medical Research Council', '10.13039/501100000925');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('National Science Foundation','10.13039/100000001');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Nederlandse Organisatie voor Wetenschappelijk Onderzoek', '10.13039/501100003246');
|
||||
INSERT INTO public."DoiFunder"(name, doi) VALUES ('Wellcome Trust', '10.13039/100004440');
|
||||
|
||||
INSERT INTO public."DBVersion" VALUES ('DMPDB', '00.00.002', '2020-05-06 18:11:00.000000+03', now(), 'Add Doi Funder');
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue