This repository has been archived on 2021-12-24. You can view files and clone it, but cannot push or open issues/pull-requests.
3 changed files with
71 additions and
0 deletions
|
|
|
@ -0,0 +1,4 @@
|
|
|
|
|
-- This file should undo anything in `up.sql`
|
|
|
|
|
DROP TABLE packages;
|
|
|
|
|
DROP TABLE maintainers;
|
|
|
|
|
DROP TYPE package_type;
|
|
|
|
@ -0,0 +1,34 @@
|
|
|
|
|
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)
|
|
|
|
|
);
|
|
|
|
@ -0,0 +1,33 @@
|
|
|
|
|
table! {
|
|
|
|
|
maintainers (id) {
|
|
|
|
|
id -> Uuid,
|
|
|
|
|
name -> Text,
|
|
|
|
|
email -> Text,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
table! {
|
|
|
|
|
packages (id) {
|
|
|
|
|
id -> Uuid,
|
|
|
|
|
name -> Text,
|
|
|
|
|
#[sql_name = "type"]
|
|
|
|
|
type_ -> Package_type,
|
|
|
|
|
version -> Text,
|
|
|
|
|
source -> Nullable<Text>,
|
|
|
|
|
section -> Nullable<Text>,
|
|
|
|
|
priority -> Nullable<Text>,
|
|
|
|
|
architecture -> Text,
|
|
|
|
|
essential -> Nullable<Bool>,
|
|
|
|
|
installed_size -> Nullable<Int4>,
|
|
|
|
|
maintainer_id -> Uuid,
|
|
|
|
|
description -> Text,
|
|
|
|
|
homepage -> Nullable<Text>,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
joinable!(packages -> maintainers (maintainer_id));
|
|
|
|
|
|
|
|
|
|
allow_tables_to_appear_in_same_query!(
|
|
|
|
|
maintainers,
|
|
|
|
|
packages,
|
|
|
|
|
);
|