setup/postgres/psql_create_tables.sql

Thu, 15 Oct 2020 13:31:52 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 15 Oct 2020 13:31:52 +0200
changeset 128
947d0f6a6a83
parent 127
6105ee2cceaf
child 138
e2aa673dd473
permissions
-rw-r--r--

changes the way how to deal with child entities + adds component lead

universe@20 1 -- This script creates the module management tables
universe@20 2 --
universe@2 3
universe@37 4 create table lpit_user (
universe@20 5 userid serial primary key,
universe@20 6 username varchar(50) not null unique,
universe@37 7 mail varchar(50),
universe@20 8 lastname varchar(50),
universe@20 9 givenname varchar(50)
universe@20 10 );
universe@37 11
universe@37 12 create table lpit_project (
universe@75 13 projectid serial primary key,
universe@37 14 name varchar(20) not null unique,
universe@37 15 description varchar(200),
universe@37 16 repoUrl varchar(50),
universe@37 17 owner integer references lpit_user(userid)
universe@37 18 );
universe@37 19
universe@37 20 create type version_status as enum (
universe@37 21 'Future',
universe@37 22 'Unreleased',
universe@37 23 'Released',
universe@37 24 'LTS',
universe@37 25 'Deprecated'
universe@37 26 );
universe@37 27
universe@37 28 create table lpit_version (
universe@75 29 versionid serial primary key,
universe@75 30 project integer not null references lpit_project(projectid),
universe@37 31 name varchar(20) not null,
universe@37 32 ordinal integer not null default 0,
universe@37 33 status version_status not null default 'Future'
universe@37 34 );
universe@62 35
universe@127 36
universe@127 37 create table lpit_component (
universe@127 38 id serial primary key,
universe@127 39 project integer not null references lpit_project(projectid),
universe@127 40 name varchar(20) not null,
universe@127 41 color char(6) not null default '000000',
universe@127 42 ordinal integer not null default 0,
universe@128 43 description text,
universe@128 44 lead integer references lpit_user(userid)
universe@127 45 );
universe@127 46
universe@62 47 create type issue_status as enum (
universe@62 48 'InSpecification',
universe@62 49 'ToDo',
universe@62 50 'Scheduled',
universe@62 51 'InProgress',
universe@62 52 'InReview',
universe@62 53 'Done',
universe@62 54 'Rejected',
universe@81 55 'Withdrawn',
universe@81 56 'Duplicate'
universe@62 57 );
universe@62 58
universe@62 59 create type issue_category as enum (
universe@62 60 'Feature',
universe@62 61 'Improvement',
universe@62 62 'Bug',
universe@62 63 'Task',
universe@62 64 'Test'
universe@62 65 );
universe@62 66
universe@81 67 create table lpit_issue_phases (
universe@81 68 status issue_status primary key,
universe@81 69 phase integer not null
universe@81 70 );
universe@81 71
universe@62 72 create table lpit_issue (
universe@75 73 issueid serial primary key,
universe@75 74 project integer not null references lpit_project(projectid),
universe@127 75 component integer references lpit_component(id),
universe@62 76 status issue_status not null default 'InSpecification',
universe@62 77 category issue_category not null default 'Feature',
universe@85 78 subject varchar(200) not null,
universe@62 79 description text,
universe@75 80 assignee integer references lpit_user(userid),
universe@62 81 created timestamp with time zone not null default now(),
universe@62 82 updated timestamp with time zone not null default now(),
universe@62 83 eta date
universe@62 84 );
universe@75 85
universe@75 86 create table lpit_issue_affected_version (
universe@75 87 issueid integer references lpit_issue(issueid),
universe@75 88 versionid integer references lpit_version(versionid),
universe@75 89 primary key (issueid, versionid)
universe@75 90 );
universe@75 91
universe@75 92 create table lpit_issue_resolved_version (
universe@75 93 issueid integer references lpit_issue(issueid),
universe@75 94 versionid integer references lpit_version(versionid),
universe@75 95 primary key (issueid, versionid)
universe@75 96 );
universe@75 97
universe@124 98 create table lpit_issue_comment (
universe@124 99 commentid serial primary key,
universe@124 100 issueid integer not null references lpit_issue(issueid),
universe@124 101 userid integer references lpit_user(userid),
universe@124 102 created timestamp with time zone not null default now(),
universe@124 103 updated timestamp with time zone not null default now(),
universe@124 104 updatecount integer not null default 0,
universe@124 105 comment text not null
universe@124 106 );

mercurial