231 lines
8.6 KiB
SQL
231 lines
8.6 KiB
SQL
-- Database generated with pgModeler (PostgreSQL Database Modeler).
|
|
-- pgModeler version: 0.9.1
|
|
-- PostgreSQL version: 10.0
|
|
-- Project Site: pgmodeler.io
|
|
-- Model Author: Joern Muehlencord
|
|
|
|
|
|
-- Database creation must be done outside a multicommand file.
|
|
-- These commands were put in this file only as a convenience.
|
|
-- -- object: account_test | type: DATABASE --
|
|
-- -- DROP DATABASE IF EXISTS account_test;
|
|
-- CREATE DATABASE account_test
|
|
-- ENCODING = 'UTF8'
|
|
-- LC_COLLATE = 'C'
|
|
-- LC_CTYPE = 'C';
|
|
-- -- ddl-end --
|
|
--
|
|
|
|
-- object: public.config | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.config CASCADE;
|
|
CREATE TABLE public.config(
|
|
application uuid NOT NULL,
|
|
config_key varchar(100) NOT NULL,
|
|
config_key_account uuid NOT NULL,
|
|
config_key_group varchar(200),
|
|
config_value varchar(200),
|
|
CONSTRAINT config_pk PRIMARY KEY (application,config_key,config_key_account)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.application_role | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.application_role CASCADE;
|
|
CREATE TABLE public.application_role(
|
|
id uuid NOT NULL,
|
|
application uuid NOT NULL,
|
|
role_name character varying(80) NOT NULL,
|
|
role_description character varying(200) NOT NULL,
|
|
CONSTRAINT application_role_pk PRIMARY KEY (id),
|
|
CONSTRAINT application_role_name_uidx UNIQUE (application,role_name)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.account | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.account CASCADE;
|
|
CREATE TABLE public.account(
|
|
id uuid NOT NULL,
|
|
username character varying(32) NOT NULL,
|
|
emailaddress character varying(200) NOT NULL,
|
|
firstname character varying(100) NOT NULL,
|
|
lastname character varying(100) NOT NULL,
|
|
status character varying(10) NOT NULL DEFAULT 'NEW',
|
|
created_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()),
|
|
created_by character varying(32) NOT NULL,
|
|
last_updated_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()),
|
|
last_updated_by character varying(32) NOT NULL,
|
|
CONSTRAINT pk_account PRIMARY KEY (id),
|
|
CONSTRAINT uidx_username UNIQUE (username)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.account_history | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.account_history CASCADE;
|
|
CREATE TABLE public.account_history(
|
|
id uuid NOT NULL,
|
|
account_id uuid NOT NULL,
|
|
message character varying(200),
|
|
failure_count integer NOT NULL DEFAULT 0,
|
|
status character varying(20) NOT NULL,
|
|
last_updated_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()),
|
|
last_updated_by character varying(32) NOT NULL,
|
|
CONSTRAINT pk_account_history PRIMARY KEY (id)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.account_role | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.account_role CASCADE;
|
|
CREATE TABLE public.account_role(
|
|
account uuid NOT NULL,
|
|
account_role uuid NOT NULL,
|
|
CONSTRAINT pk_account_role PRIMARY KEY (account,account_role)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.application_permission | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.application_permission CASCADE;
|
|
CREATE TABLE public.application_permission(
|
|
id uuid NOT NULL,
|
|
application uuid NOT NULL,
|
|
permission_name character varying(80) NOT NULL,
|
|
permission_description character varying(200) NOT NULL,
|
|
CONSTRAINT pk_application_permission PRIMARY KEY (id),
|
|
CONSTRAINT application_permission_name_uidx UNIQUE (application,permission_name)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.role_permission | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.role_permission CASCADE;
|
|
CREATE TABLE public.role_permission(
|
|
application_role uuid NOT NULL,
|
|
role_permission uuid NOT NULL,
|
|
CONSTRAINT pk_role_permission_role_permission_name PRIMARY KEY (application_role,role_permission)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.mail_template | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.mail_template CASCADE;
|
|
CREATE TABLE public.mail_template(
|
|
template_name character varying(40) NOT NULL,
|
|
template_value text NOT NULL,
|
|
CONSTRAINT mail_template_pk PRIMARY KEY (template_name)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: public.application | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.application CASCADE;
|
|
CREATE TABLE public.application(
|
|
id uuid NOT NULL,
|
|
application_name varchar(200) NOT NULL,
|
|
CONSTRAINT application_pk PRIMARY KEY (id)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- -- object: uuid-ossp | type: EXTENSION --
|
|
-- -- DROP EXTENSION IF EXISTS uuid-ossp CASCADE;
|
|
-- CREATE EXTENSION uuid-ossp
|
|
-- WITH SCHEMA public;
|
|
-- -- ddl-end --
|
|
--
|
|
-- object: public.account_login | type: TABLE --
|
|
-- DROP TABLE IF EXISTS public.account_login CASCADE;
|
|
CREATE TABLE public.account_login(
|
|
id uuid NOT NULL DEFAULT uuid_generate_v4(),
|
|
account uuid NOT NULL,
|
|
account_password varchar(200) NOT NULL,
|
|
last_login timestamptz,
|
|
last_failed_login timestamptz,
|
|
failure_count integer NOT NULL DEFAULT 0,
|
|
password_reset_ongoing boolean NOT NULL DEFAULT false,
|
|
password_reset_valid_to timestamptz,
|
|
password_reset_hash varchar(200),
|
|
created_on timestamptz NOT NULL DEFAULT timezone('utc'::text, now()),
|
|
created_by varchar(32) NOT NULL,
|
|
last_updated_on timestamptz NOT NULL DEFAULT timezone('utc'::text, now()),
|
|
last_updated_by varchar(32) NOT NULL,
|
|
CONSTRAINT account_login_pk PRIMARY KEY (id),
|
|
CONSTRAINT account_login_uidx UNIQUE (account)
|
|
|
|
);
|
|
-- ddl-end --
|
|
|
|
-- object: config_key_account_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.config DROP CONSTRAINT IF EXISTS config_key_account_fk CASCADE;
|
|
ALTER TABLE public.config ADD CONSTRAINT config_key_account_fk FOREIGN KEY (config_key_account)
|
|
REFERENCES public.account (id) MATCH FULL
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: config_application_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.config DROP CONSTRAINT IF EXISTS config_application_fk CASCADE;
|
|
ALTER TABLE public.config ADD CONSTRAINT config_application_fk FOREIGN KEY (application)
|
|
REFERENCES public.application (id) MATCH FULL
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: application_role_app_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.application_role DROP CONSTRAINT IF EXISTS application_role_app_fk CASCADE;
|
|
ALTER TABLE public.application_role ADD CONSTRAINT application_role_app_fk FOREIGN KEY (application)
|
|
REFERENCES public.application (id) MATCH FULL
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: fk_account_history_username_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.account_history DROP CONSTRAINT IF EXISTS fk_account_history_username_fk CASCADE;
|
|
ALTER TABLE public.account_history ADD CONSTRAINT fk_account_history_username_fk FOREIGN KEY (account_id)
|
|
REFERENCES public.account (id) MATCH SIMPLE
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: fk_account_role_account | type: CONSTRAINT --
|
|
-- ALTER TABLE public.account_role DROP CONSTRAINT IF EXISTS fk_account_role_account CASCADE;
|
|
ALTER TABLE public.account_role ADD CONSTRAINT fk_account_role_account FOREIGN KEY (account)
|
|
REFERENCES public.account (id) MATCH SIMPLE
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: fk_account_role_role_name | type: CONSTRAINT --
|
|
-- ALTER TABLE public.account_role DROP CONSTRAINT IF EXISTS fk_account_role_role_name CASCADE;
|
|
ALTER TABLE public.account_role ADD CONSTRAINT fk_account_role_role_name FOREIGN KEY (account_role)
|
|
REFERENCES public.application_role (id) MATCH SIMPLE
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: application_permission_app_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.application_permission DROP CONSTRAINT IF EXISTS application_permission_app_fk CASCADE;
|
|
ALTER TABLE public.application_permission ADD CONSTRAINT application_permission_app_fk FOREIGN KEY (application)
|
|
REFERENCES public.application (id) MATCH FULL
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: fk_role_permission_application_role | type: CONSTRAINT --
|
|
-- ALTER TABLE public.role_permission DROP CONSTRAINT IF EXISTS fk_role_permission_application_role CASCADE;
|
|
ALTER TABLE public.role_permission ADD CONSTRAINT fk_role_permission_application_role FOREIGN KEY (application_role)
|
|
REFERENCES public.application_role (id) MATCH SIMPLE
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: fk_role_permission_role_permission | type: CONSTRAINT --
|
|
-- ALTER TABLE public.role_permission DROP CONSTRAINT IF EXISTS fk_role_permission_role_permission CASCADE;
|
|
ALTER TABLE public.role_permission ADD CONSTRAINT fk_role_permission_role_permission FOREIGN KEY (role_permission)
|
|
REFERENCES public.application_permission (id) MATCH SIMPLE
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
-- object: account_login_fk | type: CONSTRAINT --
|
|
-- ALTER TABLE public.account_login DROP CONSTRAINT IF EXISTS account_login_fk CASCADE;
|
|
ALTER TABLE public.account_login ADD CONSTRAINT account_login_fk FOREIGN KEY (account)
|
|
REFERENCES public.account (id) MATCH FULL
|
|
ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
-- ddl-end --
|
|
|
|
|