34 lines
960 B
MySQL
34 lines
960 B
MySQL
|
CREATE TABLE maintainers (
|
||
|
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
|
||
|
|
||
|
name text NOT NULL,
|
||
|
email text NOT NULL,
|
||
|
|
||
|
UNIQUE (name, email)
|
||
|
);
|
||
|
|
||
|
CREATE TYPE package_type AS ENUM ('deb', 'dsc', 'udeb');
|
||
|
|
||
|
-- Table containing information about a package
|
||
|
CREATE TABLE packages (
|
||
|
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
|
||
|
|
||
|
name text NOT NULL,
|
||
|
type package_type NOT NULL,
|
||
|
version text NOT NULL,
|
||
|
-- This is just text, as there's no guarantee the source is present on this
|
||
|
-- repository.
|
||
|
source text,
|
||
|
section text,
|
||
|
priority text,
|
||
|
-- NOTE: could this be better than just text?
|
||
|
architecture text NOT NULL,
|
||
|
essential boolean DEFAULT false,
|
||
|
installed_size integer,
|
||
|
maintainer_id uuid REFERENCES maintainers (id) NOT NULL,
|
||
|
description text NOT NULL,
|
||
|
homepage text,
|
||
|
|
||
|
-- NOTE: I don't think this is enough because architecture can be a wildcard
|
||
|
UNIQUE (name, version, architecture)
|
||
|
);
|