]> git.ipfire.org Git - pbs.git/blobdiff - src/database.sql
db: Drop all custom types
[pbs.git] / src / database.sql
index d03fcb14046fb8eec48471e68a92cb53ffe28c4f..c706ee6bf673406de7e9e63729eaaaf547c5162a 100644 (file)
@@ -25,580 +25,6 @@ COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
 
 SET search_path = public, pg_catalog;
 
---
--- Name: arches_binary; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE arches_binary AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE arches_binary OWNER TO pakfire;
-
---
--- Name: builders_arches_enabled; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_arches_enabled AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_arches_enabled OWNER TO pakfire;
-
---
--- Name: builders_build_release; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_build_release AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_build_release OWNER TO pakfire;
-
---
--- Name: builders_build_scratch; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_build_scratch AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_build_scratch OWNER TO pakfire;
-
---
--- Name: builders_build_test; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_build_test AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_build_test OWNER TO pakfire;
-
---
--- Name: builders_deleted; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_deleted AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_deleted OWNER TO pakfire;
-
---
--- Name: builders_disabled; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_disabled AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_disabled OWNER TO pakfire;
-
---
--- Name: builders_history_action; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_history_action AS ENUM (
-    'created',
-    'enabled',
-    'disabled',
-    'deleted'
-);
-
-
-ALTER TYPE builders_history_action OWNER TO pakfire;
-
---
--- Name: builders_overload; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_overload AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builders_overload OWNER TO pakfire;
-
---
--- Name: builders_status; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builders_status AS ENUM (
-    'enabled',
-    'disabled',
-    'deleted'
-);
-
-
-ALTER TYPE builders_status OWNER TO pakfire;
-
---
--- Name: builds_auto_move; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_auto_move AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE builds_auto_move OWNER TO pakfire;
-
---
--- Name: builds_bugs_updates_error; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_bugs_updates_error AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE builds_bugs_updates_error OWNER TO pakfire;
-
---
--- Name: builds_history_action; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_history_action AS ENUM (
-    'created',
-    'bug_added',
-    'bug_removed'
-);
-
-
-ALTER TYPE builds_history_action OWNER TO pakfire;
-
---
--- Name: builds_public; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_public AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE builds_public OWNER TO pakfire;
-
---
--- Name: builds_severity; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_severity AS ENUM (
-    'security update',
-    'bugfix update',
-    'enhancement',
-    'new package'
-);
-
-
-ALTER TYPE builds_severity OWNER TO pakfire;
-
---
--- Name: builds_state; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_state AS ENUM (
-    'building',
-    'testing',
-    'stable',
-    'obsolete',
-    'broken'
-);
-
-
-ALTER TYPE builds_state OWNER TO pakfire;
-
---
--- Name: builds_type; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE builds_type AS ENUM (
-    'release',
-    'scratch'
-);
-
-
-ALTER TYPE builds_type OWNER TO pakfire;
-
---
--- Name: filelists_config; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE filelists_config AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE filelists_config OWNER TO pakfire;
-
---
--- Name: jobs_history_action; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE jobs_history_action AS ENUM (
-    'created',
-    'state_change',
-    'reset',
-    'schedule_rebuild',
-    'schedule_test_job'
-);
-
-
-ALTER TYPE jobs_history_action OWNER TO pakfire;
-
---
--- Name: jobs_history_state; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE jobs_history_state AS ENUM (
-    'new',
-    'pending',
-    'running',
-    'finished',
-    'dispatching',
-    'uploading',
-    'failed',
-    'temporary_failed',
-    'dependency_error',
-    'aborted',
-    'download_error',
-    'deleted'
-);
-
-
-ALTER TYPE jobs_history_state OWNER TO pakfire;
-
---
--- Name: jobs_state; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE jobs_state AS ENUM (
-    'new',
-    'pending',
-    'running',
-    'finished',
-    'dispatching',
-    'uploading',
-    'failed',
-    'aborted',
-    'temporary_failed',
-    'dependency_error',
-    'download_error',
-    'deleted'
-);
-
-
-ALTER TYPE jobs_state OWNER TO pakfire;
-
---
--- Name: jobs_type; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE jobs_type AS ENUM (
-    'build',
-    'test'
-);
-
-
-ALTER TYPE jobs_type OWNER TO pakfire;
-
---
--- Name: mirrors_check_status; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE mirrors_check_status AS ENUM (
-    'UNKNOWN',
-    'UP',
-    'DOWN'
-);
-
-
-ALTER TYPE mirrors_check_status OWNER TO pakfire;
-
---
--- Name: mirrors_history_action; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE mirrors_history_action AS ENUM (
-    'created',
-    'enabled',
-    'disabled',
-    'deleted'
-);
-
-
-ALTER TYPE mirrors_history_action OWNER TO pakfire;
-
---
--- Name: mirrors_status; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE mirrors_status AS ENUM (
-    'enabled',
-    'disabled',
-    'deleted'
-);
-
-
-ALTER TYPE mirrors_status OWNER TO pakfire;
-
---
--- Name: packages_deps_type; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE packages_deps_type AS ENUM (
-    'requires',
-    'prerequires',
-    'provides',
-    'conflicts',
-    'obsoletes',
-    'suggests',
-    'recommends'
-);
-
-
-ALTER TYPE packages_deps_type OWNER TO pakfire;
-
---
--- Name: packages_properties_critical_path; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE packages_properties_critical_path AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE packages_properties_critical_path OWNER TO pakfire;
-
---
--- Name: packages_type; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE packages_type AS ENUM (
-    'source',
-    'binary'
-);
-
-
-ALTER TYPE packages_type OWNER TO pakfire;
-
---
--- Name: repositories_aux_status; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE repositories_aux_status AS ENUM (
-    'enabled',
-    'disabled'
-);
-
-
-ALTER TYPE repositories_aux_status OWNER TO pakfire;
-
---
--- Name: repositories_enabled_for_builds; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE repositories_enabled_for_builds AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE repositories_enabled_for_builds OWNER TO pakfire;
-
---
--- Name: repositories_history_action; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE repositories_history_action AS ENUM (
-    'added',
-    'removed',
-    'moved'
-);
-
-
-ALTER TYPE repositories_history_action OWNER TO pakfire;
-
---
--- Name: repositories_mirrored; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE repositories_mirrored AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE repositories_mirrored OWNER TO pakfire;
-
---
--- Name: repositories_type; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE repositories_type AS ENUM (
-    'testing',
-    'unstable',
-    'stable'
-);
-
-
-ALTER TYPE repositories_type OWNER TO pakfire;
-
---
--- Name: sources_commits_state; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE sources_commits_state AS ENUM (
-    'pending',
-    'running',
-    'finished',
-    'failed'
-);
-
-
-ALTER TYPE sources_commits_state OWNER TO pakfire;
-
---
--- Name: uploads_finished; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE uploads_finished AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE uploads_finished OWNER TO pakfire;
-
---
--- Name: users_activated; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_activated AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE users_activated OWNER TO pakfire;
-
---
--- Name: users_deleted; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_deleted AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE users_deleted OWNER TO pakfire;
-
---
--- Name: users_emails_primary; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_emails_primary AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE users_emails_primary OWNER TO pakfire;
-
---
--- Name: users_permissions_create_scratch_builds; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_permissions_create_scratch_builds AS ENUM (
-    'Y',
-    'N'
-);
-
-
-ALTER TYPE users_permissions_create_scratch_builds OWNER TO pakfire;
-
---
--- Name: users_permissions_maintain_builders; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_permissions_maintain_builders AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE users_permissions_maintain_builders OWNER TO pakfire;
-
---
--- Name: users_permissions_manage_critical_path; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_permissions_manage_critical_path AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE users_permissions_manage_critical_path OWNER TO pakfire;
-
---
--- Name: users_permissions_manage_mirrors; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_permissions_manage_mirrors AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE users_permissions_manage_mirrors OWNER TO pakfire;
-
---
--- Name: users_permissions_vote; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_permissions_vote AS ENUM (
-    'N',
-    'Y'
-);
-
-
-ALTER TYPE users_permissions_vote OWNER TO pakfire;
-
---
--- Name: users_state; Type: TYPE; Schema: public; Owner: pakfire
---
-
-CREATE TYPE users_state AS ENUM (
-    'user',
-    'tester',
-    'admin'
-);
-
-
-ALTER TYPE users_state OWNER TO pakfire;
-
 --
 -- Name: on_update_current_timestamp_sources(); Type: FUNCTION; Schema: public; Owner: pakfire
 --
@@ -625,26 +51,45 @@ SET default_with_oids = false;
 
 CREATE TABLE arches (
     id integer NOT NULL,
-    name text NOT NULL,
-    prio integer DEFAULT 0 NOT NULL,
-    "binary" arches_binary DEFAULT 'Y'::arches_binary NOT NULL,
-    platform text
+    name text NOT NULL
+);
+
+
+ALTER TABLE arches OWNER TO pakfire;
+
+--
+-- Name: arches_compat; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE arches_compat (
+    native_arch text NOT NULL,
+    build_arch text NOT NULL,
+    CONSTRAINT arches_compat_unique CHECK ((native_arch <> build_arch))
 );
 
 
-ALTER TABLE arches OWNER TO pakfire;
+ALTER TABLE arches_compat OWNER TO pakfire;
+
+--
+-- Name: arches_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
+--
+
+CREATE SEQUENCE arches_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE arches_id_seq OWNER TO pakfire;
 
 --
--- Name: arches_compat; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+-- Name: arches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
 --
 
-CREATE TABLE arches_compat (
-    host_arch text NOT NULL,
-    build_arch text NOT NULL
-);
-
+ALTER SEQUENCE arches_id_seq OWNED BY arches.id;
 
-ALTER TABLE arches_compat OWNER TO pakfire;
 
 --
 -- Name: builders; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
@@ -655,13 +100,10 @@ CREATE TABLE builders (
     name text NOT NULL,
     passphrase text,
     description text,
-    status builders_status DEFAULT 'disabled'::builders_status NOT NULL,
-    disabled builders_disabled DEFAULT 'Y'::builders_disabled NOT NULL,
+    enabled boolean DEFAULT false NOT NULL,
+    deleted boolean DEFAULT false NOT NULL,
     loadavg text DEFAULT '0'::character varying NOT NULL,
-    arches text,
-    build_release builders_build_release DEFAULT 'N'::builders_build_release NOT NULL,
-    build_scratch builders_build_scratch DEFAULT 'N'::builders_build_scratch NOT NULL,
-    build_test builders_build_test DEFAULT 'N'::builders_build_test NOT NULL,
+    testmode boolean DEFAULT true NOT NULL,
     max_jobs bigint DEFAULT 1::bigint NOT NULL,
     pakfire_version text,
     os_name text,
@@ -670,11 +112,9 @@ CREATE TABLE builders (
     cpu_arch text,
     cpu_bogomips double precision,
     memory bigint DEFAULT 0 NOT NULL,
-    overload builders_overload DEFAULT 'N'::builders_overload NOT NULL,
     free_space bigint DEFAULT 0 NOT NULL,
     host_key_id text,
-    deleted builders_deleted DEFAULT 'N'::builders_deleted NOT NULL,
-    time_created timestamp without time zone NOT NULL,
+    time_created timestamp without time zone DEFAULT now() NOT NULL,
     time_updated timestamp without time zone,
     time_keepalive timestamp without time zone,
     loadavg1 double precision,
@@ -690,75 +130,6 @@ CREATE TABLE builders (
 
 ALTER TABLE builders OWNER TO pakfire;
 
---
--- Name: arches_builders; Type: VIEW; Schema: public; Owner: pakfire
---
-
-CREATE VIEW arches_builders AS
- SELECT arches_compat.build_arch AS arch,
-    builders.id AS builder_id
-   FROM (arches_compat
-     LEFT JOIN builders ON ((arches_compat.host_arch = builders.cpu_arch)));
-
-
-ALTER TABLE arches_builders OWNER TO pakfire;
-
---
--- Name: arches_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE arches_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE arches_id_seq OWNER TO pakfire;
-
---
--- Name: arches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE arches_id_seq OWNED BY arches.id;
-
-
---
--- Name: builders_arches; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE builders_arches (
-    id integer NOT NULL,
-    builder_id integer NOT NULL,
-    arch_id integer NOT NULL,
-    enabled builders_arches_enabled DEFAULT 'Y'::builders_arches_enabled NOT NULL
-);
-
-
-ALTER TABLE builders_arches OWNER TO pakfire;
-
---
--- Name: builders_arches_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE builders_arches_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE builders_arches_id_seq OWNER TO pakfire;
-
---
--- Name: builders_arches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE builders_arches_id_seq OWNED BY builders_arches.id;
-
-
 --
 -- Name: builders_history; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -766,7 +137,7 @@ ALTER SEQUENCE builders_arches_id_seq OWNED BY builders_arches.id;
 CREATE TABLE builders_history (
     id integer NOT NULL,
     builder_id integer NOT NULL,
-    action builders_history_action NOT NULL,
+    action text NOT NULL,
     user_id integer,
     "time" timestamp without time zone NOT NULL
 );
@@ -816,77 +187,6 @@ ALTER TABLE builders_id_seq OWNER TO pakfire;
 ALTER SEQUENCE builders_id_seq OWNED BY builders.id;
 
 
---
--- Name: jobs; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE jobs (
-    id integer NOT NULL,
-    uuid text NOT NULL,
-    type jobs_type DEFAULT 'build'::jobs_type NOT NULL,
-    build_id integer NOT NULL,
-    state jobs_state DEFAULT 'new'::jobs_state NOT NULL,
-    arch_id integer NOT NULL,
-    time_created timestamp without time zone NOT NULL,
-    time_started timestamp without time zone,
-    time_finished timestamp without time zone,
-    start_not_before timestamp without time zone,
-    builder_id integer,
-    tries integer DEFAULT 0 NOT NULL,
-    aborted_state integer DEFAULT 0 NOT NULL,
-    message text
-);
-
-
-ALTER TABLE jobs OWNER TO pakfire;
-
---
--- Name: jobs_active; Type: VIEW; Schema: public; Owner: pakfire
---
-
-CREATE VIEW jobs_active AS
- SELECT jobs.id,
-    jobs.uuid,
-    jobs.type,
-    jobs.build_id,
-    jobs.state,
-    jobs.arch_id,
-    jobs.time_created,
-    jobs.time_started,
-    jobs.time_finished,
-    jobs.start_not_before,
-    jobs.builder_id,
-    jobs.tries,
-    jobs.aborted_state,
-    jobs.message
-   FROM jobs
-  WHERE (jobs.state = ANY (ARRAY['dispatching'::jobs_state, 'running'::jobs_state, 'uploading'::jobs_state]))
-  ORDER BY jobs.time_started;
-
-
-ALTER TABLE jobs_active OWNER TO pakfire;
-
---
--- Name: builders_ready; Type: VIEW; Schema: public; Owner: pakfire
---
-
-CREATE VIEW builders_ready AS
- SELECT builders.id AS builder_id,
-    builders.cpu_arch AS builder_arch,
-    builders.build_release,
-    builders.build_scratch,
-    builders.build_test
-   FROM builders
-  WHERE (((builders.status = 'enabled'::builders_status) AND (builders.time_keepalive >= (now() - '00:05:00'::interval))) AND (builders.max_jobs > ( SELECT count(*) AS count
-           FROM jobs_active
-          WHERE (jobs_active.builder_id = builders.id))))
-  ORDER BY ( SELECT count(*) AS count
-           FROM jobs_active
-          WHERE (jobs_active.builder_id = builders.id)), builders.cpu_bogomips DESC;
-
-
-ALTER TABLE builders_ready OWNER TO pakfire;
-
 --
 -- Name: builds; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -895,19 +195,18 @@ CREATE TABLE builds (
     id integer NOT NULL,
     uuid text NOT NULL,
     pkg_id integer NOT NULL,
-    type builds_type DEFAULT 'release'::builds_type NOT NULL,
-    state builds_state DEFAULT 'building'::builds_state NOT NULL,
-    severity builds_severity,
+    type text DEFAULT 'release'::text NOT NULL,
+    state text DEFAULT 'building'::text NOT NULL,
+    severity text,
     message text,
-    time_created timestamp with time zone NOT NULL,
+    time_created timestamp without time zone DEFAULT now() NOT NULL,
     update_year integer,
     update_num integer,
     depends_on integer,
     distro_id integer NOT NULL,
     owner_id integer,
-    public builds_public DEFAULT 'Y'::builds_public NOT NULL,
     priority integer DEFAULT 0 NOT NULL,
-    auto_move builds_auto_move DEFAULT 'N'::builds_auto_move NOT NULL
+    auto_move boolean DEFAULT false NOT NULL
 );
 
 
@@ -958,7 +257,7 @@ CREATE TABLE builds_bugs_updates (
     resolution text,
     comment text,
     "time" timestamp without time zone NOT NULL,
-    error builds_bugs_updates_error DEFAULT 'N'::builds_bugs_updates_error NOT NULL,
+    error boolean DEFAULT false NOT NULL,
     error_msg text
 );
 
@@ -994,9 +293,9 @@ CREATE TABLE builds_comments (
     id integer NOT NULL,
     build_id integer NOT NULL,
     user_id integer NOT NULL,
-    text text NOT NULL,
-    credit integer NOT NULL,
-    time_created timestamp without time zone NOT NULL,
+    text text,
+    score integer NOT NULL,
+    time_created timestamp without time zone DEFAULT now() NOT NULL,
     time_updated timestamp without time zone
 );
 
@@ -1031,7 +330,7 @@ ALTER SEQUENCE builds_comments_id_seq OWNED BY builds_comments.id;
 CREATE TABLE builds_history (
     id integer NOT NULL,
     build_id integer NOT NULL,
-    action builds_history_action NOT NULL,
+    action text NOT NULL,
     user_id integer,
     "time" timestamp without time zone NOT NULL,
     bug_id integer
@@ -1083,91 +382,42 @@ ALTER SEQUENCE builds_id_seq OWNED BY builds.id;
 
 
 --
--- Name: packages; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+-- Name: jobs; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-CREATE TABLE packages (
+CREATE TABLE jobs (
     id integer NOT NULL,
-    name text NOT NULL,
-    epoch integer NOT NULL,
-    version text NOT NULL,
-    release text NOT NULL,
-    type packages_type NOT NULL,
-    arch integer NOT NULL,
-    groups text NOT NULL,
-    maintainer text NOT NULL,
-    license text NOT NULL,
-    url text NOT NULL,
-    summary text NOT NULL,
-    description text NOT NULL,
-    size bigint NOT NULL,
-    supported_arches text,
     uuid text NOT NULL,
-    commit_id integer,
-    build_id text NOT NULL,
-    build_host text NOT NULL,
-    build_time timestamp without time zone NOT NULL,
-    path text NOT NULL,
-    filesize bigint NOT NULL,
-    hash_sha512 text NOT NULL
-);
-
-
-ALTER TABLE packages OWNER TO pakfire;
-
---
--- Name: repositories_builds; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE repositories_builds (
-    id integer NOT NULL,
-    repo_id integer NOT NULL,
-    build_id bigint NOT NULL,
-    time_added timestamp without time zone NOT NULL
+    build_id integer NOT NULL,
+    state text DEFAULT 'pending'::text NOT NULL,
+    arch text NOT NULL,
+    time_created timestamp without time zone DEFAULT now() NOT NULL,
+    time_started timestamp without time zone,
+    time_finished timestamp without time zone,
+    start_not_before timestamp without time zone,
+    builder_id integer,
+    aborted_state integer DEFAULT 0 NOT NULL,
+    message text,
+    test boolean DEFAULT true NOT NULL,
+    superseeded_by integer,
+    dependency_check_succeeded boolean,
+    dependency_check_at timestamp without time zone,
+    CONSTRAINT jobs_states CHECK ((state = ANY (ARRAY['pending'::text, 'dispatching'::text, 'running'::text, 'uploading'::text, 'finished'::text, 'aborted'::text, 'download_error'::text, 'failed'::text])))
 );
 
 
-ALTER TABLE repositories_builds OWNER TO pakfire;
-
---
--- Name: builds_latest; Type: VIEW; Schema: public; Owner: pakfire
---
-
-CREATE VIEW builds_latest AS
- SELECT builds.id AS build_id,
-    builds.type AS build_type,
-    builds.state AS build_state,
-    packages.name AS package_name,
-    builds.public
-   FROM (builds
-     LEFT JOIN packages ON ((builds.pkg_id = packages.id)))
-  WHERE ((builds.id IN ( SELECT repositories_builds.build_id
-           FROM repositories_builds)) OR ((builds.time_created >= ( SELECT builds_1.time_created
-           FROM ((builds builds_1
-             LEFT JOIN repositories_builds ON ((builds_1.id = repositories_builds.build_id)))
-             LEFT JOIN packages p ON ((builds_1.pkg_id = p.id)))
-          WHERE (p.name = packages.name)
-          ORDER BY builds_1.time_created
-         LIMIT 1)) AND (builds.state <> ALL (ARRAY['obsolete'::builds_state, 'broken'::builds_state]))));
-
-
-ALTER TABLE builds_latest OWNER TO pakfire;
+ALTER TABLE jobs OWNER TO pakfire;
 
 --
 -- Name: builds_times; Type: VIEW; Schema: public; Owner: pakfire
 --
 
 CREATE VIEW builds_times AS
- SELECT builds.id AS build_id,
-    arches.name AS arch,
-    arches.platform,
-    jobs.type AS job_type,
-    (jobs.time_finished - jobs.time_started) AS duration
-   FROM (((jobs
-     LEFT JOIN builds ON ((jobs.build_id = builds.id)))
-     LEFT JOIN packages ON ((builds.pkg_id = packages.id)))
-     LEFT JOIN arches ON ((jobs.arch_id = arches.id)))
-  WHERE (jobs.state = 'finished'::jobs_state);
+ SELECT jobs.build_id,
+    jobs.arch,
+    date_part('epoch'::text, (jobs.time_finished - jobs.time_started)) AS duration
+   FROM jobs
+  WHERE ((jobs.test IS FALSE) AND (jobs.state = 'finished'::text));
 
 
 ALTER TABLE builds_times OWNER TO pakfire;
@@ -1218,12 +468,26 @@ CREATE TABLE distributions (
     description text,
     vendor text NOT NULL,
     contact text,
-    tag text NOT NULL
+    tag text NOT NULL,
+    deleted boolean DEFAULT false NOT NULL
 );
 
 
 ALTER TABLE distributions OWNER TO pakfire;
 
+--
+-- Name: distributions_arches; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE distributions_arches (
+    id integer NOT NULL,
+    distro_id integer NOT NULL,
+    arch text NOT NULL
+);
+
+
+ALTER TABLE distributions_arches OWNER TO pakfire;
+
 --
 -- Name: distributions_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
 --
@@ -1245,19 +509,6 @@ ALTER TABLE distributions_id_seq OWNER TO pakfire;
 ALTER SEQUENCE distributions_id_seq OWNED BY distributions.id;
 
 
---
--- Name: distro_arches; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE distro_arches (
-    id integer NOT NULL,
-    distro_id integer NOT NULL,
-    arch_id integer NOT NULL
-);
-
-
-ALTER TABLE distro_arches OWNER TO pakfire;
-
 --
 -- Name: distro_arches_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
 --
@@ -1276,7 +527,7 @@ ALTER TABLE distro_arches_id_seq OWNER TO pakfire;
 -- Name: distro_arches_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
 --
 
-ALTER SEQUENCE distro_arches_id_seq OWNED BY distro_arches.id;
+ALTER SEQUENCE distro_arches_id_seq OWNED BY distributions_arches.id;
 
 
 --
@@ -1289,11 +540,11 @@ CREATE TABLE filelists (
     size bigint NOT NULL,
     hash_sha512 text,
     type integer NOT NULL,
-    config filelists_config NOT NULL,
+    config boolean NOT NULL,
     mode integer NOT NULL,
     "user" text NOT NULL,
     "group" text NOT NULL,
-    mtime timestamp with time zone NOT NULL,
+    mtime timestamp without time zone NOT NULL,
     capabilities text
 );
 
@@ -1339,7 +590,6 @@ ALTER SEQUENCE images_types_id_seq OWNED BY images_types.id;
 
 CREATE TABLE jobs_buildroots (
     job_id integer NOT NULL,
-    tries integer NOT NULL,
     pkg_uuid text NOT NULL,
     pkg_name text NOT NULL
 );
@@ -1353,8 +603,8 @@ ALTER TABLE jobs_buildroots OWNER TO pakfire;
 
 CREATE TABLE jobs_history (
     job_id integer NOT NULL,
-    action jobs_history_action NOT NULL,
-    state jobs_history_state,
+    action text NOT NULL,
+    state text,
     user_id integer,
     "time" timestamp without time zone NOT NULL,
     builder_id integer,
@@ -1424,30 +674,16 @@ ALTER SEQUENCE jobs_packages_id_seq OWNED BY jobs_packages.id;
 --
 
 CREATE VIEW jobs_queue AS
- SELECT jobs.id,
-    arches.name AS arch,
-    ( SELECT builders_ready.builder_id
-           FROM builders_ready
-          WHERE (builders_ready.builder_id IN ( SELECT arches_builders.builder_id
-                   FROM arches_builders
-                  WHERE ((arches_builders.arch = arches.name) AND
-                        CASE
-                            WHEN ((builds.type = 'release'::builds_type) AND (jobs.type = 'build'::jobs_type)) THEN (builders_ready.build_release = 'Y'::builders_build_release)
-                            WHEN ((builds.type = 'scratch'::builds_type) AND (jobs.type = 'build'::jobs_type)) THEN (builders_ready.build_scratch = 'Y'::builders_build_scratch)
-                            WHEN (jobs.type = 'test'::jobs_type) THEN (builders_ready.build_test = 'Y'::builders_build_test)
-                            ELSE NULL::boolean
-                        END)))
-         LIMIT 1) AS designated_builder_id
-   FROM ((jobs
-     LEFT JOIN arches ON ((jobs.arch_id = arches.id)))
-     LEFT JOIN builds ON ((jobs.build_id = builds.id)))
-  WHERE ((jobs.state = ANY (ARRAY['pending'::jobs_state, 'new'::jobs_state])) AND ((jobs.start_not_before IS NULL) OR (jobs.start_not_before <= now())))
-  ORDER BY
-        CASE
-            WHEN (jobs.type = 'build'::jobs_type) THEN 0
-            WHEN (jobs.type = 'test'::jobs_type) THEN 1
-            ELSE NULL::integer
-        END, builds.priority DESC, jobs.tries, jobs.time_created;
+ WITH queue AS (
+         SELECT jobs.id,
+            rank() OVER (ORDER BY (NOT jobs.test), builds.priority DESC, jobs.time_created) AS rank
+           FROM (jobs
+             LEFT JOIN builds ON ((jobs.build_id = builds.id)))
+          WHERE ((jobs.state = 'pending'::text) AND (jobs.dependency_check_succeeded IS TRUE))
+        )
+ SELECT queue.id AS job_id,
+    queue.rank
+   FROM queue;
 
 
 ALTER TABLE jobs_queue OWNER TO pakfire;
@@ -1464,26 +700,6 @@ CREATE TABLE jobs_repos (
 
 ALTER TABLE jobs_repos OWNER TO pakfire;
 
---
--- Name: jobs_waiting; Type: VIEW; Schema: public; Owner: pakfire
---
-
-CREATE VIEW jobs_waiting AS
- SELECT jobs_queue.id,
-    (now() - (jobs.time_created)::timestamp with time zone) AS time_waiting
-   FROM (jobs_queue
-     LEFT JOIN jobs ON ((jobs_queue.id = jobs.id)))
-  WHERE (jobs.start_not_before IS NULL)
-UNION
- SELECT jobs_queue.id,
-    (now() - (jobs.start_not_before)::timestamp with time zone) AS time_waiting
-   FROM (jobs_queue
-     LEFT JOIN jobs ON ((jobs_queue.id = jobs.id)))
-  WHERE (jobs.start_not_before IS NOT NULL);
-
-
-ALTER TABLE jobs_waiting OWNER TO pakfire;
-
 --
 -- Name: keys; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -1592,6 +808,41 @@ ALTER TABLE logfiles_id_seq OWNER TO pakfire;
 ALTER SEQUENCE logfiles_id_seq OWNED BY logfiles.id;
 
 
+--
+-- Name: messages; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE messages (
+    id integer NOT NULL,
+    message text NOT NULL,
+    queued_at timestamp without time zone DEFAULT now() NOT NULL,
+    sent_at timestamp without time zone
+);
+
+
+ALTER TABLE messages OWNER TO pakfire;
+
+--
+-- Name: messages_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
+--
+
+CREATE SEQUENCE messages_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE messages_id_seq OWNER TO pakfire;
+
+--
+-- Name: messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
+--
+
+ALTER SEQUENCE messages_id_seq OWNED BY messages.id;
+
+
 --
 -- Name: mirrors; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -1602,14 +853,51 @@ CREATE TABLE mirrors (
     path text NOT NULL,
     owner text,
     contact text,
-    status mirrors_status DEFAULT 'disabled'::mirrors_status NOT NULL,
-    check_status mirrors_check_status DEFAULT 'UNKNOWN'::mirrors_check_status NOT NULL,
-    last_check timestamp without time zone
+    deleted boolean DEFAULT false NOT NULL,
+    supports_https boolean DEFAULT false NOT NULL
 );
 
 
 ALTER TABLE mirrors OWNER TO pakfire;
 
+--
+-- Name: mirrors_checks; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE mirrors_checks (
+    id integer NOT NULL,
+    mirror_id integer NOT NULL,
+    "timestamp" timestamp without time zone DEFAULT now() NOT NULL,
+    response_time double precision,
+    http_status integer,
+    last_sync_at timestamp without time zone,
+    status text DEFAULT 'OK'::text NOT NULL
+);
+
+
+ALTER TABLE mirrors_checks OWNER TO pakfire;
+
+--
+-- Name: mirrors_checks_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
+--
+
+CREATE SEQUENCE mirrors_checks_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE mirrors_checks_id_seq OWNER TO pakfire;
+
+--
+-- Name: mirrors_checks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
+--
+
+ALTER SEQUENCE mirrors_checks_id_seq OWNED BY mirrors_checks.id;
+
+
 --
 -- Name: mirrors_history; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -1617,7 +905,7 @@ ALTER TABLE mirrors OWNER TO pakfire;
 CREATE TABLE mirrors_history (
     id integer NOT NULL,
     mirror_id integer NOT NULL,
-    action mirrors_history_action NOT NULL,
+    action text NOT NULL,
     user_id integer,
     "time" timestamp without time zone NOT NULL
 );
@@ -1664,8 +952,41 @@ ALTER TABLE mirrors_id_seq OWNER TO pakfire;
 -- Name: mirrors_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
 --
 
-ALTER SEQUENCE mirrors_id_seq OWNED BY mirrors.id;
+ALTER SEQUENCE mirrors_id_seq OWNED BY mirrors.id;
+
+
+--
+-- Name: packages; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE packages (
+    id integer NOT NULL,
+    name text NOT NULL,
+    epoch integer NOT NULL,
+    version text NOT NULL,
+    release text NOT NULL,
+    type text NOT NULL,
+    arch text NOT NULL,
+    groups text NOT NULL,
+    maintainer text NOT NULL,
+    license text NOT NULL,
+    url text NOT NULL,
+    summary text NOT NULL,
+    description text NOT NULL,
+    size bigint NOT NULL,
+    supported_arches text,
+    uuid text NOT NULL,
+    commit_id integer,
+    build_id text NOT NULL,
+    build_host text NOT NULL,
+    build_time timestamp without time zone NOT NULL,
+    path text NOT NULL,
+    filesize bigint NOT NULL,
+    hash_sha512 text NOT NULL
+);
+
 
+ALTER TABLE packages OWNER TO pakfire;
 
 --
 -- Name: packages_deps; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
@@ -1673,7 +994,7 @@ ALTER SEQUENCE mirrors_id_seq OWNED BY mirrors.id;
 
 CREATE TABLE packages_deps (
     pkg_id integer NOT NULL,
-    type packages_deps_type NOT NULL,
+    type text NOT NULL,
     what text NOT NULL
 );
 
@@ -1708,7 +1029,7 @@ ALTER SEQUENCE packages_id_seq OWNED BY packages.id;
 CREATE TABLE packages_properties (
     id integer NOT NULL,
     name text NOT NULL,
-    critical_path packages_properties_critical_path DEFAULT 'N'::packages_properties_critical_path NOT NULL,
+    critical_path boolean DEFAULT false NOT NULL,
     priority integer DEFAULT 0 NOT NULL
 );
 
@@ -1742,7 +1063,8 @@ ALTER SEQUENCE packages_properties_id_seq OWNED BY packages_properties.id;
 
 CREATE TABLE queue_delete (
     id integer NOT NULL,
-    path text NOT NULL
+    path text NOT NULL,
+    not_before timestamp without time zone
 );
 
 
@@ -1769,6 +1091,21 @@ ALTER TABLE queue_delete_id_seq OWNER TO pakfire;
 ALTER SEQUENCE queue_delete_id_seq OWNED BY queue_delete.id;
 
 
+--
+-- Name: relation_sizes; Type: VIEW; Schema: public; Owner: pakfire
+--
+
+CREATE VIEW relation_sizes AS
+ SELECT c.relname AS relation,
+    pg_size_pretty(pg_relation_size((c.oid)::regclass)) AS size
+   FROM (pg_class c
+     LEFT JOIN pg_namespace n ON ((n.oid = c.relnamespace)))
+  WHERE (n.nspname <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name]))
+  ORDER BY pg_relation_size((c.oid)::regclass) DESC;
+
+
+ALTER TABLE relation_sizes OWNER TO pakfire;
+
 --
 -- Name: repositories; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -1776,19 +1113,21 @@ ALTER SEQUENCE queue_delete_id_seq OWNED BY queue_delete.id;
 CREATE TABLE repositories (
     id integer NOT NULL,
     name text NOT NULL,
-    type repositories_type DEFAULT 'testing'::repositories_type NOT NULL,
+    type text DEFAULT 'testing'::text NOT NULL,
     description text NOT NULL,
     distro_id integer NOT NULL,
     parent_id integer,
     key_id integer,
-    mirrored repositories_mirrored DEFAULT 'N'::repositories_mirrored NOT NULL,
-    enabled_for_builds repositories_enabled_for_builds DEFAULT 'N'::repositories_enabled_for_builds NOT NULL,
+    mirrored boolean DEFAULT false NOT NULL,
+    enabled_for_builds boolean DEFAULT false NOT NULL,
     score_needed integer DEFAULT 0 NOT NULL,
     last_update timestamp without time zone,
     time_min integer DEFAULT 0 NOT NULL,
     time_max integer DEFAULT 0 NOT NULL,
-    update_started timestamp without time zone,
-    update_ended timestamp without time zone
+    deleted boolean DEFAULT false NOT NULL,
+    priority integer,
+    user_id integer,
+    update_forced boolean DEFAULT false NOT NULL
 );
 
 
@@ -1804,7 +1143,7 @@ CREATE TABLE repositories_aux (
     description text,
     url text NOT NULL,
     distro_id integer NOT NULL,
-    status repositories_aux_status DEFAULT 'disabled'::repositories_aux_status NOT NULL
+    status text DEFAULT 'disabled'::text NOT NULL
 );
 
 
@@ -1831,6 +1170,20 @@ ALTER TABLE repositories_aux_id_seq OWNER TO pakfire;
 ALTER SEQUENCE repositories_aux_id_seq OWNED BY repositories_aux.id;
 
 
+--
+-- Name: repositories_builds; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE TABLE repositories_builds (
+    id integer NOT NULL,
+    repo_id integer NOT NULL,
+    build_id bigint NOT NULL,
+    time_added timestamp without time zone NOT NULL
+);
+
+
+ALTER TABLE repositories_builds OWNER TO pakfire;
+
 --
 -- Name: repositories_builds_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
 --
@@ -1858,7 +1211,7 @@ ALTER SEQUENCE repositories_builds_id_seq OWNED BY repositories_builds.id;
 
 CREATE TABLE repositories_history (
     build_id bigint NOT NULL,
-    action repositories_history_action NOT NULL,
+    action text NOT NULL,
     from_repo_id integer,
     to_repo_id integer,
     user_id integer,
@@ -1941,39 +1294,6 @@ CREATE TABLE settings (
 
 ALTER TABLE settings OWNER TO pakfire;
 
---
--- Name: slogans; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE slogans (
-    id integer NOT NULL,
-    message text NOT NULL
-);
-
-
-ALTER TABLE slogans OWNER TO pakfire;
-
---
--- Name: slogans_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE slogans_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE slogans_id_seq OWNER TO pakfire;
-
---
--- Name: slogans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE slogans_id_seq OWNED BY slogans.id;
-
-
 --
 -- Name: sources; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2006,7 +1326,8 @@ CREATE TABLE sources_commits (
     subject text NOT NULL,
     body text NOT NULL,
     date timestamp without time zone NOT NULL,
-    state sources_commits_state DEFAULT 'pending'::sources_commits_state NOT NULL
+    state text DEFAULT 'pending'::text NOT NULL,
+    imported_at timestamp without time zone DEFAULT now() NOT NULL
 );
 
 
@@ -2067,7 +1388,7 @@ CREATE TABLE uploads (
     hash text NOT NULL,
     size bigint NOT NULL,
     progress bigint DEFAULT 0 NOT NULL,
-    finished uploads_finished DEFAULT 'N'::uploads_finished NOT NULL,
+    finished boolean DEFAULT false NOT NULL,
     time_started timestamp without time zone DEFAULT now() NOT NULL,
     time_finished timestamp without time zone
 );
@@ -2096,43 +1417,6 @@ ALTER TABLE uploads_id_seq OWNER TO pakfire;
 ALTER SEQUENCE uploads_id_seq OWNED BY uploads.id;
 
 
---
--- Name: user_messages; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE TABLE user_messages (
-    id integer NOT NULL,
-    frm text NOT NULL,
-    "to" text NOT NULL,
-    subject text NOT NULL,
-    text text NOT NULL,
-    time_added timestamp without time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE user_messages OWNER TO pakfire;
-
---
--- Name: user_messages_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE user_messages_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE user_messages_id_seq OWNER TO pakfire;
-
---
--- Name: user_messages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE user_messages_id_seq OWNED BY user_messages.id;
-
-
 --
 -- Name: users; Type: TABLE; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2141,14 +1425,16 @@ CREATE TABLE users (
     id integer NOT NULL,
     name text NOT NULL,
     realname text,
-    passphrase text NOT NULL,
-    state users_state NOT NULL,
+    passphrase text,
+    state text DEFAULT 'user'::text NOT NULL,
     locale text,
     timezone text,
-    activated users_activated DEFAULT 'N'::users_activated NOT NULL,
-    activation_code text,
-    deleted users_deleted DEFAULT 'N'::users_deleted NOT NULL,
-    registered timestamp without time zone DEFAULT now() NOT NULL
+    activated boolean DEFAULT false NOT NULL,
+    deleted boolean DEFAULT false NOT NULL,
+    registered timestamp without time zone DEFAULT now() NOT NULL,
+    ldap_dn text,
+    password_recovery_code text,
+    password_recovery_code_expires_at timestamp without time zone
 );
 
 
@@ -2162,7 +1448,9 @@ CREATE TABLE users_emails (
     id integer NOT NULL,
     user_id integer NOT NULL,
     email text NOT NULL,
-    "primary" users_emails_primary DEFAULT 'N'::users_emails_primary NOT NULL
+    "primary" boolean DEFAULT false NOT NULL,
+    activated boolean DEFAULT false NOT NULL,
+    activation_code text
 );
 
 
@@ -2217,11 +1505,11 @@ ALTER SEQUENCE users_id_seq OWNED BY users.id;
 CREATE TABLE users_permissions (
     id integer NOT NULL,
     user_id integer NOT NULL,
-    create_scratch_builds users_permissions_create_scratch_builds DEFAULT 'N'::users_permissions_create_scratch_builds NOT NULL,
-    maintain_builders users_permissions_maintain_builders DEFAULT 'N'::users_permissions_maintain_builders NOT NULL,
-    manage_critical_path users_permissions_manage_critical_path DEFAULT 'N'::users_permissions_manage_critical_path NOT NULL,
-    manage_mirrors users_permissions_manage_mirrors DEFAULT 'N'::users_permissions_manage_mirrors NOT NULL,
-    vote users_permissions_vote DEFAULT 'N'::users_permissions_vote NOT NULL
+    create_scratch_builds boolean DEFAULT false NOT NULL,
+    maintain_builders boolean DEFAULT false NOT NULL,
+    manage_critical_path boolean DEFAULT false NOT NULL,
+    manage_mirrors boolean DEFAULT false NOT NULL,
+    vote boolean DEFAULT false NOT NULL
 );
 
 
@@ -2262,13 +1550,6 @@ ALTER TABLE ONLY arches ALTER COLUMN id SET DEFAULT nextval('arches_id_seq'::reg
 ALTER TABLE ONLY builders ALTER COLUMN id SET DEFAULT nextval('builders_id_seq'::regclass);
 
 
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY builders_arches ALTER COLUMN id SET DEFAULT nextval('builders_arches_id_seq'::regclass);
-
-
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
@@ -2329,7 +1610,7 @@ ALTER TABLE ONLY distributions ALTER COLUMN id SET DEFAULT nextval('distribution
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY distro_arches ALTER COLUMN id SET DEFAULT nextval('distro_arches_id_seq'::regclass);
+ALTER TABLE ONLY distributions_arches ALTER COLUMN id SET DEFAULT nextval('distro_arches_id_seq'::regclass);
 
 
 --
@@ -2374,6 +1655,13 @@ ALTER TABLE ONLY keys_subkeys ALTER COLUMN id SET DEFAULT nextval('keys_subkeys_
 ALTER TABLE ONLY logfiles ALTER COLUMN id SET DEFAULT nextval('logfiles_id_seq'::regclass);
 
 
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY messages ALTER COLUMN id SET DEFAULT nextval('messages_id_seq'::regclass);
+
+
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
@@ -2381,6 +1669,13 @@ ALTER TABLE ONLY logfiles ALTER COLUMN id SET DEFAULT nextval('logfiles_id_seq':
 ALTER TABLE ONLY mirrors ALTER COLUMN id SET DEFAULT nextval('mirrors_id_seq'::regclass);
 
 
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY mirrors_checks ALTER COLUMN id SET DEFAULT nextval('mirrors_checks_id_seq'::regclass);
+
+
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
@@ -2441,56 +1736,58 @@ ALTER TABLE ONLY sessions ALTER COLUMN id SET DEFAULT nextval('sessions_id_seq':
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY slogans ALTER COLUMN id SET DEFAULT nextval('slogans_id_seq'::regclass);
+ALTER TABLE ONLY sources ALTER COLUMN id SET DEFAULT nextval('sources_id_seq'::regclass);
 
 
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY sources ALTER COLUMN id SET DEFAULT nextval('sources_id_seq'::regclass);
+ALTER TABLE ONLY sources_commits ALTER COLUMN id SET DEFAULT nextval('sources_commits_id_seq'::regclass);
 
 
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY sources_commits ALTER COLUMN id SET DEFAULT nextval('sources_commits_id_seq'::regclass);
+ALTER TABLE ONLY uploads ALTER COLUMN id SET DEFAULT nextval('uploads_id_seq'::regclass);
 
 
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY uploads ALTER COLUMN id SET DEFAULT nextval('uploads_id_seq'::regclass);
+ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
 
 
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY user_messages ALTER COLUMN id SET DEFAULT nextval('user_messages_id_seq'::regclass);
+ALTER TABLE ONLY users_emails ALTER COLUMN id SET DEFAULT nextval('users_emails_id_seq'::regclass);
 
 
 --
 -- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass);
+ALTER TABLE ONLY users_permissions ALTER COLUMN id SET DEFAULT nextval('users_permissions_id_seq'::regclass);
 
 
 --
--- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
+-- Name: arches_compat_unique; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-ALTER TABLE ONLY users_emails ALTER COLUMN id SET DEFAULT nextval('users_emails_id_seq'::regclass);
+ALTER TABLE ONLY arches_compat
+    ADD CONSTRAINT arches_compat_unique UNIQUE (native_arch, build_arch);
 
 
 --
--- Name: id; Type: DEFAULT; Schema: public; Owner: pakfire
+-- Name: arches_name; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-ALTER TABLE ONLY users_permissions ALTER COLUMN id SET DEFAULT nextval('users_permissions_id_seq'::regclass);
+ALTER TABLE ONLY arches
+    ADD CONSTRAINT arches_name UNIQUE (name);
 
 
 --
@@ -2509,14 +1806,6 @@ ALTER TABLE ONLY builders
     ADD CONSTRAINT idx_2197954_primary PRIMARY KEY (id);
 
 
---
--- Name: idx_2197975_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
---
-
-ALTER TABLE ONLY builders_arches
-    ADD CONSTRAINT idx_2197975_primary PRIMARY KEY (id);
-
-
 --
 -- Name: idx_2197982_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2585,7 +1874,7 @@ ALTER TABLE ONLY distributions
 -- Name: idx_2198048_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-ALTER TABLE ONLY distro_arches
+ALTER TABLE ONLY distributions_arches
     ADD CONSTRAINT idx_2198048_primary PRIMARY KEY (id);
 
 
@@ -2701,14 +1990,6 @@ ALTER TABLE ONLY repositories_builds
     ADD CONSTRAINT idx_2198189_primary PRIMARY KEY (id);
 
 
---
--- Name: idx_2198207_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
---
-
-ALTER TABLE ONLY slogans
-    ADD CONSTRAINT idx_2198207_primary PRIMARY KEY (id);
-
-
 --
 -- Name: idx_2198213_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2761,7 +2042,7 @@ ALTER TABLE ONLY users_permissions
 -- Name: idx_2198274_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-ALTER TABLE ONLY user_messages
+ALTER TABLE ONLY messages
     ADD CONSTRAINT idx_2198274_primary PRIMARY KEY (id);
 
 
@@ -2773,6 +2054,22 @@ ALTER TABLE ONLY jobs_packages
     ADD CONSTRAINT jobs_packages_unique UNIQUE (job_id, pkg_id);
 
 
+--
+-- Name: mirrors_checks_pkey; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+ALTER TABLE ONLY mirrors_checks
+    ADD CONSTRAINT mirrors_checks_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: repositories_builds_unique; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+ALTER TABLE ONLY repositories_builds
+    ADD CONSTRAINT repositories_builds_unique UNIQUE (repo_id, build_id);
+
+
 --
 -- Name: sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2790,10 +2087,25 @@ ALTER TABLE ONLY sessions
 
 
 --
--- Name: builders_arches_builder_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+-- Name: users_password_recovery_code; Type: CONSTRAINT; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+ALTER TABLE ONLY users
+    ADD CONSTRAINT users_password_recovery_code UNIQUE (password_recovery_code);
+
+
+--
+-- Name: arches_compat_native_arch; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX arches_compat_native_arch ON arches_compat USING btree (native_arch);
+
+
+--
+-- Name: builders_name; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-CREATE INDEX builders_arches_builder_id ON builders_arches USING btree (builder_id);
+CREATE UNIQUE INDEX builders_name ON builders USING btree (name) WHERE (deleted IS FALSE);
 
 
 --
@@ -2803,6 +2115,20 @@ CREATE INDEX builders_arches_builder_id ON builders_arches USING btree (builder_
 CREATE INDEX builds_watchers_build_id ON builds_watchers USING btree (build_id);
 
 
+--
+-- Name: distributions_arches_distro_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX distributions_arches_distro_id ON distributions_arches USING btree (distro_id);
+
+
+--
+-- Name: distributions_sname; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE UNIQUE INDEX distributions_sname ON distributions USING btree (sname) WHERE (deleted IS FALSE);
+
+
 --
 -- Name: filelists_name; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2811,10 +2137,12 @@ CREATE INDEX filelists_name ON filelists USING btree (name);
 
 
 --
--- Name: idx_2197949_host_arch; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+-- Name: filelists_pkg_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-CREATE INDEX idx_2197949_host_arch ON arches_compat USING btree (host_arch);
+CREATE INDEX filelists_pkg_id ON filelists USING btree (pkg_id);
+
+ALTER TABLE filelists CLUSTER ON filelists_pkg_id;
 
 
 --
@@ -2873,20 +2201,6 @@ CREATE INDEX idx_2198018_build_id ON builds_comments USING btree (build_id);
 CREATE INDEX idx_2198018_user_id ON builds_comments USING btree (user_id);
 
 
---
--- Name: idx_2198052_pkg_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198052_pkg_id ON filelists USING btree (pkg_id);
-
-
---
--- Name: idx_2198063_arch_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198063_arch_id ON jobs USING btree (arch_id);
-
-
 --
 -- Name: idx_2198063_build_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2901,20 +2215,6 @@ CREATE INDEX idx_2198063_build_id ON jobs USING btree (build_id);
 CREATE INDEX idx_2198063_state ON jobs USING btree (state);
 
 
---
--- Name: idx_2198063_time_finished; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198063_time_finished ON jobs USING btree (time_finished);
-
-
---
--- Name: idx_2198063_type; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198063_type ON jobs USING btree (type);
-
-
 --
 -- Name: idx_2198063_uuid; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2922,13 +2222,6 @@ CREATE INDEX idx_2198063_type ON jobs USING btree (type);
 CREATE UNIQUE INDEX idx_2198063_uuid ON jobs USING btree (uuid);
 
 
---
--- Name: idx_2198074_job_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198074_job_id ON jobs_buildroots USING btree (job_id);
-
-
 --
 -- Name: idx_2198080_job_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2950,13 +2243,6 @@ CREATE UNIQUE INDEX idx_2198089_job_id ON jobs_repos USING btree (job_id, repo_i
 CREATE UNIQUE INDEX idx_2198094_fingerprint ON keys USING btree (fingerprint);
 
 
---
--- Name: idx_2198132_epoch; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198132_epoch ON packages USING btree (epoch);
-
-
 --
 -- Name: idx_2198132_name; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2964,13 +2250,6 @@ CREATE INDEX idx_2198132_epoch ON packages USING btree (epoch);
 CREATE INDEX idx_2198132_name ON packages USING btree (name);
 
 
---
--- Name: idx_2198132_release; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198132_release ON packages USING btree (release);
-
-
 --
 -- Name: idx_2198132_type; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -2985,13 +2264,6 @@ CREATE INDEX idx_2198132_type ON packages USING btree (type);
 CREATE INDEX idx_2198132_uuid ON packages USING btree (uuid);
 
 
---
--- Name: idx_2198132_version; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
---
-
-CREATE INDEX idx_2198132_version ON packages USING btree (version);
-
-
 --
 -- Name: idx_2198139_pkg_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -3069,6 +2341,29 @@ CREATE UNIQUE INDEX idx_2198256_email ON users_emails USING btree (email);
 CREATE INDEX idx_2198256_user_id ON users_emails USING btree (user_id);
 
 
+--
+-- Name: jobs_arch; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX jobs_arch ON jobs USING btree (arch);
+
+
+--
+-- Name: jobs_builders_active_jobs; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX jobs_builders_active_jobs ON jobs USING btree (builder_id) WHERE (state = ANY (ARRAY['dispatching'::text, 'running'::text]));
+
+
+--
+-- Name: jobs_buildroots_job_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX jobs_buildroots_job_id ON jobs_buildroots USING btree (job_id);
+
+ALTER TABLE jobs_buildroots CLUSTER ON jobs_buildroots_job_id;
+
+
 --
 -- Name: jobs_buildroots_pkg_uuid; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
@@ -3077,26 +2372,62 @@ CREATE INDEX jobs_buildroots_pkg_uuid ON jobs_buildroots USING btree (pkg_uuid);
 
 
 --
--- Name: on_update_current_timestamp; Type: TRIGGER; Schema: public; Owner: pakfire
+-- Name: jobs_queue_ready; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-CREATE TRIGGER on_update_current_timestamp BEFORE UPDATE ON sources FOR EACH ROW EXECUTE PROCEDURE on_update_current_timestamp_sources();
+CREATE INDEX jobs_queue_ready ON jobs USING btree (id) WHERE ((state = 'new'::text) AND (dependency_check_succeeded IS TRUE));
+
+
+--
+-- Name: jobs_time_finished; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX jobs_time_finished ON jobs USING btree (time_finished DESC) WHERE (time_finished IS NOT NULL);
+
+
+--
+-- Name: jobs_time_started; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX jobs_time_started ON jobs USING btree (time_started) WHERE ((time_started IS NOT NULL) AND (time_finished IS NULL));
+
+
+--
+-- Name: messages_order; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX messages_order ON messages USING btree (queued_at) WHERE (sent_at IS NULL);
+
+
+--
+-- Name: mirrors_checks_sort; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
+--
+
+CREATE INDEX mirrors_checks_sort ON mirrors_checks USING btree (mirror_id, "timestamp");
+
+ALTER TABLE mirrors_checks CLUSTER ON mirrors_checks_sort;
 
 
 --
--- Name: builders_arches_arch_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+-- Name: repositories_builds_repo_id; Type: INDEX; Schema: public; Owner: pakfire; Tablespace: 
 --
 
-ALTER TABLE ONLY builders_arches
-    ADD CONSTRAINT builders_arches_arch_id FOREIGN KEY (arch_id) REFERENCES arches(id);
+CREATE INDEX repositories_builds_repo_id ON repositories_builds USING btree (repo_id);
 
 
 --
--- Name: builders_arches_builder_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+-- Name: on_update_current_timestamp; Type: TRIGGER; Schema: public; Owner: pakfire
+--
+
+CREATE TRIGGER on_update_current_timestamp BEFORE UPDATE ON sources FOR EACH ROW EXECUTE PROCEDURE on_update_current_timestamp_sources();
+
+
+--
+-- Name: arches_compat_build_arch; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY builders_arches
-    ADD CONSTRAINT builders_arches_builder_id FOREIGN KEY (builder_id) REFERENCES builders(id);
+ALTER TABLE ONLY arches_compat
+    ADD CONSTRAINT arches_compat_build_arch FOREIGN KEY (build_arch) REFERENCES arches(name);
 
 
 --
@@ -3204,18 +2535,18 @@ ALTER TABLE ONLY builds_watchers
 
 
 --
--- Name: distro_arches_arch_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+-- Name: distributions_arches_arch; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY distro_arches
-    ADD CONSTRAINT distro_arches_arch_id FOREIGN KEY (arch_id) REFERENCES arches(id);
+ALTER TABLE ONLY distributions_arches
+    ADD CONSTRAINT distributions_arches_arch FOREIGN KEY (arch) REFERENCES arches(name);
 
 
 --
 -- Name: distro_arches_distro_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
 
-ALTER TABLE ONLY distro_arches
+ALTER TABLE ONLY distributions_arches
     ADD CONSTRAINT distro_arches_distro_id FOREIGN KEY (distro_id) REFERENCES distributions(id);
 
 
@@ -3228,11 +2559,11 @@ ALTER TABLE ONLY filelists
 
 
 --
--- Name: jobs_arch_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+-- Name: jobs_arch; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
 
 ALTER TABLE ONLY jobs
-    ADD CONSTRAINT jobs_arch_id FOREIGN KEY (arch_id) REFERENCES arches(id);
+    ADD CONSTRAINT jobs_arch FOREIGN KEY (arch) REFERENCES arches(name);
 
 
 --
@@ -3323,6 +2654,14 @@ ALTER TABLE ONLY jobs_repos
     ADD CONSTRAINT jobs_repos_repo_id FOREIGN KEY (repo_id) REFERENCES repositories(id);
 
 
+--
+-- Name: jobs_superseeded_by; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY jobs
+    ADD CONSTRAINT jobs_superseeded_by FOREIGN KEY (superseeded_by) REFERENCES jobs(id);
+
+
 --
 -- Name: keys_subkeys_key_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -3339,6 +2678,14 @@ ALTER TABLE ONLY logfiles
     ADD CONSTRAINT logfiles_job_id FOREIGN KEY (job_id) REFERENCES jobs(id);
 
 
+--
+-- Name: mirrors_checks_mirror_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY mirrors_checks
+    ADD CONSTRAINT mirrors_checks_mirror_id FOREIGN KEY (mirror_id) REFERENCES mirrors(id);
+
+
 --
 -- Name: mirrors_history_mirror_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -3360,7 +2707,7 @@ ALTER TABLE ONLY mirrors_history
 --
 
 ALTER TABLE ONLY packages
-    ADD CONSTRAINT packages_arch FOREIGN KEY (arch) REFERENCES arches(id);
+    ADD CONSTRAINT packages_arch FOREIGN KEY (arch) REFERENCES arches(name);
 
 
 --
@@ -3459,6 +2806,14 @@ ALTER TABLE ONLY repositories
     ADD CONSTRAINT repositories_parent_id FOREIGN KEY (parent_id) REFERENCES repositories(id);
 
 
+--
+-- Name: repositories_user_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
+--
+
+ALTER TABLE ONLY repositories
+    ADD CONSTRAINT repositories_user_id FOREIGN KEY (user_id) REFERENCES users(id);
+
+
 --
 -- Name: sessions_impersonated_user_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -3512,7 +2867,7 @@ ALTER TABLE ONLY uploads
 --
 
 ALTER TABLE ONLY users_emails
-    ADD CONSTRAINT users_emails_user_id FOREIGN KEY (user_id) REFERENCES users(id);
+    ADD CONSTRAINT users_emails_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
 
 
 --
@@ -3520,7 +2875,7 @@ ALTER TABLE ONLY users_emails
 --
 
 ALTER TABLE ONLY users_permissions
-    ADD CONSTRAINT users_permissions_user_id FOREIGN KEY (user_id) REFERENCES users(id);
+    ADD CONSTRAINT users_permissions_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
 
 
 --