setup/postgres/psql_create_tables.sql

Thu, 08 Oct 2020 20:38:43 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 08 Oct 2020 20:38:43 +0200
changeset 110
9d0be0b1580f
parent 88
1438e5a22c55
child 124
ed2e7aef2a3e
permissions
-rw-r--r--

adds indicators for version status

replaces table column "Status" with version tag
fixes New Version form button not overriding the session version ID

-- This script creates the module management tables
--

create table lpit_user (
    userid          serial          primary key,
    username        varchar(50)     not null unique,
    mail            varchar(50),
    lastname        varchar(50),
    givenname       varchar(50)
);

create table lpit_project (
    projectid       serial          primary key,
    name            varchar(20)     not null unique,
    description     varchar(200),
    repoUrl         varchar(50),
    owner           integer         references lpit_user(userid)
);

create type version_status as enum (
    'Future',
    'Unreleased',
    'Released',
    'LTS',
    'Deprecated'
);

create table lpit_version (
    versionid       serial          primary key,
    project         integer         not null references lpit_project(projectid),
    name            varchar(20)     not null,
    ordinal         integer         not null default 0,
    status          version_status  not null default 'Future'
);

create type issue_status as enum (
    'InSpecification',
    'ToDo',
    'Scheduled',
    'InProgress',
    'InReview',
    'Done',
    'Rejected',
    'Withdrawn',
    'Duplicate'
);

create type issue_category as enum (
    'Feature',
    'Improvement',
    'Bug',
    'Task',
    'Test'
);

create table lpit_issue_phases (
    status          issue_status    primary key,
    phase           integer         not null
);

create table lpit_issue (
    issueid         serial          primary key,
    project         integer         not null references lpit_project(projectid),
    status          issue_status    not null default 'InSpecification',
    category        issue_category  not null default 'Feature',
    subject         varchar(200)    not null,
    description     text,
    assignee        integer         references lpit_user(userid),
    created         timestamp       with time zone not null default now(),
    updated         timestamp       with time zone not null default now(),
    eta             date
);

create table lpit_issue_affected_version (
    issueid         integer         references lpit_issue(issueid),
    versionid       integer         references lpit_version(versionid),
    primary key (issueid, versionid)
);

create table lpit_issue_resolved_version (
    issueid         integer         references lpit_issue(issueid),
    versionid       integer         references lpit_version(versionid),
    primary key (issueid, versionid)
);

mercurial