setup/postgres/psql_create_tables.sql

Wed, 18 Aug 2021 14:57:45 +0200

author
Mike Becker <universe@uap-core.de>
date
Wed, 18 Aug 2021 14:57:45 +0200
changeset 225
87328572e36f
parent 206
fe4de34822a5
child 227
f0ede8046b59
permissions
-rw-r--r--

#159 adds release and eol dates

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

mercurial