setup/postgres/psql_create_tables.sql

Thu, 15 Oct 2020 12:27:05 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 15 Oct 2020 12:27:05 +0200
changeset 127
6105ee2cceaf
parent 124
ed2e7aef2a3e
child 128
947d0f6a6a83
permissions
-rw-r--r--

adds component entity

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@127 43 description text
universe@127 44 );
universe@127 45
universe@62 46 create type issue_status as enum (
universe@62 47 'InSpecification',
universe@62 48 'ToDo',
universe@62 49 'Scheduled',
universe@62 50 'InProgress',
universe@62 51 'InReview',
universe@62 52 'Done',
universe@62 53 'Rejected',
universe@81 54 'Withdrawn',
universe@81 55 'Duplicate'
universe@62 56 );
universe@62 57
universe@62 58 create type issue_category as enum (
universe@62 59 'Feature',
universe@62 60 'Improvement',
universe@62 61 'Bug',
universe@62 62 'Task',
universe@62 63 'Test'
universe@62 64 );
universe@62 65
universe@81 66 create table lpit_issue_phases (
universe@81 67 status issue_status primary key,
universe@81 68 phase integer not null
universe@81 69 );
universe@81 70
universe@62 71 create table lpit_issue (
universe@75 72 issueid serial primary key,
universe@75 73 project integer not null references lpit_project(projectid),
universe@127 74 component integer references lpit_component(id),
universe@62 75 status issue_status not null default 'InSpecification',
universe@62 76 category issue_category not null default 'Feature',
universe@85 77 subject varchar(200) not null,
universe@62 78 description text,
universe@75 79 assignee integer references lpit_user(userid),
universe@62 80 created timestamp with time zone not null default now(),
universe@62 81 updated timestamp with time zone not null default now(),
universe@62 82 eta date
universe@62 83 );
universe@75 84
universe@75 85 create table lpit_issue_affected_version (
universe@75 86 issueid integer references lpit_issue(issueid),
universe@75 87 versionid integer references lpit_version(versionid),
universe@75 88 primary key (issueid, versionid)
universe@75 89 );
universe@75 90
universe@75 91 create table lpit_issue_resolved_version (
universe@75 92 issueid integer references lpit_issue(issueid),
universe@75 93 versionid integer references lpit_version(versionid),
universe@75 94 primary key (issueid, versionid)
universe@75 95 );
universe@75 96
universe@124 97 create table lpit_issue_comment (
universe@124 98 commentid serial primary key,
universe@124 99 issueid integer not null references lpit_issue(issueid),
universe@124 100 userid integer references lpit_user(userid),
universe@124 101 created timestamp with time zone not null default now(),
universe@124 102 updated timestamp with time zone not null default now(),
universe@124 103 updatecount integer not null default 0,
universe@124 104 comment text not null
universe@124 105 );

mercurial