]> git.decadent.org.uk Git - dak.git/commitdiff
Merge branch 'master' into rm
authorTorsten Werner <twerner@debian.org>
Thu, 11 Aug 2011 20:42:27 +0000 (22:42 +0200)
committerTorsten Werner <twerner@debian.org>
Thu, 11 Aug 2011 20:42:27 +0000 (22:42 +0200)
34 files changed:
config/backports/dak.conf
config/debian-security/dak.conf
config/debian/common
config/debian/dak.conf
dak/admin.py
dak/clean_queues.py
dak/clean_suites.py
dak/cruft_report.py
dak/dak.py
dak/dakdb/update65.py [new file with mode: 0755]
dak/dominate.py
dak/examine_package.py
dak/find_null_maintainers.py
dak/import_known_changes.py
dak/import_users_from_passwd.py
dak/init_dirs.py
dak/process_new.py
dak/queue_report.py
dak/update_db.py
daklib/dbconn.py
daklib/queue.py
daklib/queue_install.py
debian/control
docs/README.config
docs/README.first
docs/TODO.old
setup/README
setup/core-init.d/060_archive
setup/current_schema.sql
setup/dak-minimal.conf.template
setup/init_minimal_conf
setup/schema_64.sql [deleted file]
setup/schema_65.sql [new file with mode: 0644]
templates/missing-contents [deleted file]

index 36e1a58ecdc05c7081d05ca24fcaf70f1598bd81..0955995302ccbe6e23b3aa1f2a1972ca3b691c4f 100644 (file)
@@ -17,7 +17,6 @@ Dinstall
    // actions related to the package. For an example look at
    // packages.qa.debian.org
    // TrackingServer "packages.qa.test.backports.org";
-   LockFile "/srv/backports-master.debian.org/lock/dinstall.lock";
    // If defined this address gets a bcc of all mails.
    // FIXME: Einrichten wenn das hier produktiv geht!
    Bcc "debian-backports-changes@lists.debian.org";
@@ -213,12 +212,12 @@ Dir
   BTSVersionTrack "/srv/backports-master.debian.org/queue/bts_version_track/";
   Holding "/srv/backports-master.debian.org/queue/holding/";
   Done "/srv/backports-master.debian.org/queue/done/";
+  Reject "/srv/backports-master.debian.org/queue/reject/";
 
   Queue
   {
     Byhand "/srv/backports-master.debian.org/queue/byhand/";
     New "/srv/backports-master.debian.org/queue/new/";
-    Reject "/srv/backports-master.debian.org/queue/reject/";
     Unchecked "/srv/backports-master.debian.org/queue/unchecked/";
     Newstage "/srv/backports-master.debian.org/queue/newstage/";
     Embargoed "/srv/backports-master.debian.org/queue/Embargoed/";
index 96fb97f9fa7632bd4a5a54759ee806994544de7b..aa729c37675f667200cda973df0337ecd2921b95 100644 (file)
@@ -11,7 +11,6 @@ Dinstall
    MyDistribution "Debian"; // Used in emails
    BugServer "bugs.debian.org";
    PackagesServer "packages.debian.org";
-   LockFile "/org/security-master.debian.org/dak/lock";
    Bcc "archive@ftp-master.debian.org";
    // GroupOverrideFilename "override.group-maint";
    FutureTimeTravelGrace 28800; // 8 hours
@@ -217,12 +216,12 @@ Dir
   TempPath "/srv/security-master.debian.org/tmp";
   Holding "/srv/security-master.debian.org/queue/holding/";
   Done "/srv/security-master.debian.org/queue/done/";
+  Reject "/srv/security-master.debian.org/queue/reject/";
 
   Queue
   {
     Byhand "/srv/security-master.debian.org/queue/byhand/";
     New "/srv/security-master.debian.org/queue/new/";
-    Reject "/srv/security-master.debian.org/queue/reject/";
     Unchecked "/srv/security-master.debian.org/queue/unchecked/";
     Newstage "/srv/security-master.debian.org/queue/newstage/";
 
index f5ec8ae630ae8a42696c7e5d158c5db2c2607ac0..61559515c04620b0b1c45f09ee6ba22a422ca0b3 100644 (file)
@@ -36,6 +36,8 @@ function make_buildd_dir () {
     dak manage-build-queues -a
 
     for dist in $(ls -1 ${incoming}/dists/); do
+        # Skip project trace directory
+        if [ "${dist}x" = "projectx" ]; then continue; fi
         cd ${incoming}/dists/${dist}
         mkdir -p tree/${STAMP}
         cp -al ${incoming}/dists/${dist}/buildd/. tree/${STAMP}/
index 24f662e113b25b818ccda92016acd193fe42fdee..503659aca88bd2199287b40f593b477aa1e8bb13 100644 (file)
@@ -11,7 +11,6 @@ Dinstall
    BugServer "bugs.debian.org";
    PackagesServer "packages.debian.org";
    TrackingServer "packages.qa.debian.org";
-   LockFile "/srv/ftp-master.debian.org/lock/dinstall.lock";
    Bcc "archive@ftp-master.debian.org";
    FutureTimeTravelGrace 28800; // 8 hours
    PastCutoffYear "1984";
@@ -314,21 +313,7 @@ Dir
   BTSVersionTrack "/srv/ftp-master.debian.org/queue/bts_version_track/";
   Holding "/srv/ftp-master.debian.org/queue/holding/";
   Done "/srv/ftp-master.debian.org/queue/done/";
-
-  Queue
-  {
-    Byhand "/srv/ftp-master.debian.org/queue/byhand/";
-    ProposedUpdates "/srv/ftp-master.debian.org/queue/p-u-new/";
-    OldProposedUpdates "/srv/ftp-master.debian.org/queue/o-p-u-new/";
-    ProposedUpdates "/srv/ftp-master.debian.org/queue/p-u-new/";
-    New "/srv/ftp-master.debian.org/queue/new/";
-    Reject "/srv/ftp-master.debian.org/queue/reject/";
-    Unchecked "/srv/ftp-master.debian.org/queue/unchecked/";
-    Newstage "/srv/ftp-master.debian.org/queue/newstage/";
-    Embargoed "/srv/ftp-master.debian.org/does/not/exist/";
-    Unembargoed "/srv/ftp-master.debian.org/does/not/exist/";
-    Disembargo "/srv/ftp-master.debian.org/does/not/exist/";
-  };
+  Reject "/srv/ftp-master.debian.org/queue/reject/";
 };
 
 Queue-Report
index 2183c2293b2ad4c039d1658362b1f72ad318c22b..c6128b9befb0fc3c86792e41c9472538b1809bfa 100755 (executable)
@@ -80,8 +80,10 @@ Perform administrative work on the dak database.
      s show SUITE           show config details for a suite
      s add SUITE VERSION [ label=LABEL ] [ description=DESCRIPTION ]
                          [ origin=ORIGIN ] [ codename=CODENAME ]
-                            add suite SUITE, version VERSION. label,
-                            description, origin and codename are optional.
+                         [ signingkey=SIGNINGKEY ]
+                            add suite SUITE, version VERSION.
+                            label, description, origin, codename
+                            and signingkey are optional.
 
      s add-all-arches SUITE VERSION... as "s add" but adds suite-architecture
                             relationships for all architectures
@@ -214,11 +216,16 @@ def __suite_add(d, args, addallarches=False):
             s = d.session()
             suite = Suite()
             suite.suite_name = suite_name
+            suite.overridecodename = suite_name
             suite.version = version
             suite.label = get_field('label')
             suite.description = get_field('description')
             suite.origin = get_field('origin')
             suite.codename = get_field('codename')
+            signingkey = get_field('signingkey')
+            if signingkey is not None:
+                suite.signingkeys = [signingkey.upper()]
+            suite.srcformats = s.query(SrcFormat).all()
             s.add(suite)
             s.flush()
         except IntegrityError, e:
index 474fe390cacbb1dbdcc36da812bf44f8715e78bf..390c2551b85d02213b77bbde419bd6869d66a61c 100755 (executable)
 ################################################################################
 
 import os, os.path, stat, sys, time
+from datetime import datetime, timedelta
 import apt_pkg
 from daklib import utils
 from daklib import daklog
 from daklib.config import Config
+from daklib.dbconn import get_policy_queue
 
 ################################################################################
 
@@ -65,9 +67,21 @@ Clean out incoming directories.
 def init (cnf):
     global delete_date, del_dir
 
+    # Used for directory naming
+    now_date = datetime.now()
+
+    # Used for working out times
     delete_date = int(time.time())-(int(Options["Days"])*84600)
-    date = time.strftime("%Y-%m-%d")
-    del_dir = os.path.join(cnf["Dir::Morgue"], cnf["Clean-Queues::MorgueSubDir"], date)
+
+    morguedir = cnf.get("Dir::Morgue", os.path.join("Dir::Pool", 'morgue'))
+    morguesubdir = cnf.get("Clean-Queues::MorgueSubDir", 'queue')
+
+    # Build directory as morguedir/morguesubdir/year/month/day
+    del_dir = os.path.join(morguedir,
+                           morguesubdir,
+                           str(now_date.year),
+                           '%.2d' % now_date.month,
+                           '%.2d' % now_date.day)
 
     # Ensure a directory exists to remove files to
     if not Options["No-Action"]:
@@ -79,8 +93,15 @@ def init (cnf):
     # Move to the directory to clean
     incoming = Options["Incoming"]
     if incoming == "":
-        incoming = cnf["Dir::Queue::Unchecked"]
-    os.chdir(incoming)
+        incoming_queue = get_policy_queue('unchecked')
+        if not incoming_queue:
+            utils.fubar("Cannot find 'unchecked' queue")
+        incoming = incoming_queue.path
+
+    try:
+        os.chdir(incoming)
+    except OSError, e:
+        utils.fubar("Cannot chdir to %s" % incoming)
 
 # Remove a file to the morgue
 def remove (from_dir, f):
@@ -201,10 +222,10 @@ def main ():
         print "Processing incoming..."
     flush_orphans()
 
-    reject = cnf["Dir::Queue::Reject"]
+    reject = cnf["Dir::Reject"]
     if os.path.exists(reject) and os.path.isdir(reject):
         if Options["Verbose"]:
-            print "Processing incoming/REJECT..."
+            print "Processing reject directory..."
         os.chdir(reject)
         flush_old()
 
index b0711acbcc30a506a2b5bfc8efc2c128a52ecd8a..9713de3447f16825930ad029e018398dfb7b638c 100755 (executable)
@@ -244,10 +244,18 @@ def clean(now_date, delete_date, max_delete, session):
 
     print "Cleaning out packages..."
 
-    cur_date = now_date.strftime("%Y-%m-%d")
-    dest = os.path.join(cnf["Dir::Morgue"], cnf["Clean-Suites::MorgueSubDir"], cur_date)
+    morguedir = cnf.get("Dir::Morgue", os.path.join("Dir::Pool", 'morgue'))
+    morguesubdir = cnf.get("Clean-Suites::MorgueSubDir", 'pool')
+
+    # Build directory as morguedir/morguesubdir/year/month/day
+    dest = os.path.join(morguedir,
+                        morguesubdir,
+                        str(now_date.year),
+                        '%.2d' % now_date.month,
+                        '%.2d' % now_date.day)
+
     if not Options["No-Action"] and not os.path.exists(dest):
-        os.mkdir(dest)
+        os.makedirs(dest)
 
     # Delete from source
     print "Deleting from source table... "
@@ -429,7 +437,11 @@ def main():
     session = DBConn().session()
 
     now_date = datetime.now()
-    delete_date = now_date - timedelta(seconds=int(cnf['Clean-Suites::StayOfExecution']))
+
+    # Stay of execution; default to 1.5 days
+    soe = int(cnf.get('Clean-Suites::StayOfExecution', '129600'))
+
+    delete_date = now_date - timedelta(seconds=soe)
 
     check_binaries(now_date, delete_date, max_delete, session)
     clean_binaries(now_date, delete_date, max_delete, session)
index 5b199dcab8de5756ec347f9ef96f349f63ae8025..b200d7936a367bc5feb505aba11b5b1da2c34b63 100755 (executable)
@@ -556,6 +556,9 @@ def main ():
     nfu_packages = {}
 
     suite = get_suite(Options["Suite"].lower(), session)
+    if not suite:
+        utils.fubar("Cannot find suite %s" % Options["Suite"].lower())
+
     suite_id = suite.suite_id
     suite_name = suite.suite_name.lower()
 
index 4d9ac076bf620eb46ec32c9c2e2307ed0a68a30b..579548c9470050bc8117f0db94074f4d0451cfbd 100755 (executable)
@@ -129,8 +129,6 @@ def init():
          "Generates Maintainers file for BTS etc"),
         ("make-overrides",
          "Generates override files"),
-        ("poolize",
-         "Move packages from dists/ to pool/"),
         ("new-security-install",
          "New way to install a security upload into the archive"),
         ("split-done",
diff --git a/dak/dakdb/update65.py b/dak/dakdb/update65.py
new file mode 100755 (executable)
index 0000000..8dd83a1
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# coding=utf8
+
+"""
+Make announce field an array
+
+@contact: Debian FTP Master <ftpmaster@debian.org>
+@copyright: 2011 Mark Hymers <mhy@debian.org>
+@license: GNU General Public License version 2 or later
+"""
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+################################################################################
+
+import psycopg2
+from daklib.dak_exceptions import DBUpdateError
+from daklib.config import Config
+
+################################################################################
+def do_update(self):
+    """
+    Make announce field an array
+    """
+    print __doc__
+    try:
+        c = self.db.cursor()
+
+        c.execute("ALTER TABLE suite RENAME COLUMN announce TO announce_temp")
+        c.execute("ALTER TABLE suite ADD COLUMN announce TEXT[]")
+        c.execute("UPDATE suite SET announce = ARRAY[announce_temp] WHERE announce_temp IS NOT NULL")
+        c.execute("ALTER TABLE suite DROP COLUMN announce_temp")
+
+        c.execute("UPDATE config SET value = '65' WHERE name = 'db_revision'")
+        self.db.commit()
+
+    except psycopg2.ProgrammingError, msg:
+        self.db.rollback()
+        raise DBUpdateError, 'Unable to apply sick update 65, rollback issued. Error message : %s' % (str(msg))
index 483ab28ab9e7c0f279f9fad6ac0b6ad7db5f3d6f..5d1bafdf7562092cec8c63ab450f9275917736d2 100755 (executable)
@@ -146,6 +146,7 @@ def main():
         session.rollback()
     else:
         session.commit()
+    Logger.close()
 
 if __name__ == '__main__':
     main()
index 5cb1a77e9a6fb8dcbd3e62d511056d4dfe08edd8..8e2ce20b987135538e4a0d76cab2be7a8df72665 100755 (executable)
@@ -65,6 +65,7 @@ from daklib.gpg import SignedFile
 from daklib.regexes import html_escaping, re_html_escaping, re_version, re_spacestrip, \
                            re_contrib, re_nonfree, re_localhost, re_newlinespace, \
                            re_package, re_doc_directory
+from daklib.dak_exceptions import ChangesUnicodeError
 
 ################################################################################
 
index 6074dbee44f1e19292595206de559e989f991fd0..730b277008a976f09af12a343b99cd555193ac5a 100755 (executable)
@@ -24,6 +24,7 @@ import apt_pkg
 
 from daklib.dbconn import *
 from daklib.config import Config
+from daklib.utils import fubar
 
 ################################################################################
 
@@ -58,6 +59,12 @@ def main():
     if Options["Help"]:
         usage()
 
+    if not cnf.has_key('Import-LDAP-Fingerprints::LDAPServer'):
+        fubar("Import-LDAP-Fingerprints::LDAPServer not configured")
+
+    if not cnf.has_key('Import-LDAP-Fingerprints::LDAPDn'):
+        fubar("Import-LDAP-Fingerprints::LDAPDn not configured")
+
     session = DBConn().session()
 
     print "Getting info from the LDAP server..."
index b3f8e8a8359b2c7ac991862d174550e84222a3f7..125dbb8c576e9b531af95ede45bcb12157ce58f9 100755 (executable)
@@ -32,7 +32,7 @@ import sys
 import os
 import logging
 import threading
-from daklib.dbconn import DBConn, get_dbchange
+from daklib.dbconn import DBConn, get_dbchange, get_policy_queue
 from daklib.config import Config
 import apt_pkg
 from daklib.dak_exceptions import DBUpdateError, InvalidDscError, ChangesUnicodeError
@@ -200,8 +200,18 @@ class ChangesGenerator(threading.Thread):
     def run(self):
         cnf = Config()
         count = 1
-        for directory in [ "Byhand", "Done", "New", "ProposedUpdates", "OldProposedUpdates" ]:
-            checkdir = cnf["Dir::Queue::%s" % (directory) ]
+
+        dirs = []
+        dirs.append(cnf['Dir::Done'])
+
+        for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates" ]:
+            queue = get_policy_queue(queue_name)
+            if queue:
+                dirs.append(os.path.abspath(queue.path))
+            else:
+                warn("Could not find queue %s in database" % queue_name)
+
+        for checkdir in dirs:
             if os.path.exists(checkdir):
                 print "Looking into %s" % (checkdir)
 
@@ -288,7 +298,7 @@ class ImportKnownChanges(object):
 
         except KeyboardInterrupt:
             print("Caught C-c; terminating.")
-            utils.warn("Caught C-c; terminating.")
+            warn("Caught C-c; terminating.")
             self.plsDie()
 
     def plsDie(self):
index 958486710251b99e5ac5e2ebf5a6cf75efef37b2..b959e37fa64e9f4b2020d7d6afe2226193b844ec 100755 (executable)
@@ -115,7 +115,12 @@ def main ():
                     # NB: I never figured out how to use a bind parameter for this query
                     # XXX: Fix this as it looks like a potential SQL injection attack to me
                     #      (hence the safe_name match we do)
-                    q = session.execute('CREATE USER "%s"' % (uname))
+                    try:
+                        q = session.execute('CREATE USER "%s"' % (uname))
+                        session.commit()
+                    except Exception, e:
+                        utils.warn("Could not create user %s (%s)" % (uname, str(e)))
+                        session.rollback()
                 else:
                     print "NOT CREATING USER %s.  Doesn't match safety regex" % uname
 
index d095eeee986b7bdb6093861eb81cda6a32deb79e..a4703bb88b5170ef8597ea18d3eb675bacf23a0a 100755 (executable)
 import os, sys
 import apt_pkg
 from daklib import utils
+from daklib.dbconn import *
 
 ################################################################################
 
 Cnf = None
-AptCnf = None
 
 ################################################################################
 
@@ -65,9 +65,6 @@ def process_tree(config, tree):
 
     for entry in config.SubTree(tree).List():
         entry = entry.lower()
-        if tree == "Dir":
-            if entry in [ "poolroot", "queue" , "morguereject" ]:
-                continue
         config_name = "%s::%s" % (tree, entry)
         target = config[config_name]
         do_dir(target, config_name)
@@ -80,43 +77,99 @@ def process_morguesubdir(subdir):
         target = os.path.join(Cnf["Dir::Morgue"], Cnf[config_name])
         do_dir(target, config_name)
 
+def process_keyring(fullpath, secret=False):
+    """Create empty keyring if necessary."""
+
+    if os.path.exists(fullpath):
+        return
+
+    keydir = os.path.dirname(fullpath)
+
+    if not os.path.isdir(keydir):
+        print "Creating %s ..." % (keydir)
+        os.makedirs(keydir)
+        if secret:
+            # Make sure secret keyring directories are 0700
+            os.chmod(keydir, 0700)
+
+    # Touch the file
+    print "Creating %s ..." % (fullpath)
+    file(fullpath, 'w')
+    if secret:
+        os.chmod(fullpath, 0600)
+    else:
+        os.chmod(fullpath, 0644)
+
 ######################################################################
 
 def create_directories():
     """Create directories referenced in dak.conf and apt.conf."""
 
+    session = DBConn().session()
+
     # Process directories from dak.conf
     process_tree(Cnf, "Dir")
-    process_tree(Cnf, "Dir::Queue")
-    for config_name in [ "Dinstall::LockFile", "Rm::LogFile",
+
+    # Process queue directories
+    for queue in session.query(PolicyQueue):
+        do_dir(queue.path, '%s queue' % queue.queue_name)
+
+    for config_name in [ "Rm::LogFile",
                          "Import-Archive::ExportDir" ]:
         process_file(Cnf, config_name)
+
     for subdir in [ "Clean-Queues", "Clean-Suites" ]:
         process_morguesubdir(subdir)
 
-    # Process directories from apt.conf
-    process_tree(AptCnf, "Dir")
-    for tree in AptCnf.SubTree("Tree").List():
-        config_name = "Tree::%s" % (tree)
-        tree_dir = os.path.join(Cnf["Dir::Root"], tree)
-        do_dir(tree_dir, tree)
-        for filename in [ "FileList", "SourceFileList" ]:
-            process_file(AptCnf, "%s::%s" % (config_name, filename))
-        for component in AptCnf["%s::Sections" % (config_name)].split():
-            for architecture in AptCnf["%s::Architectures" \
-                                       % (config_name)].split():
-                if architecture != "source":
-                    architecture = "binary-"+architecture
-                target = os.path.join(tree_dir, component, architecture)
-                do_dir(target, "%s, %s, %s" % (tree, component, architecture))
+    suite_suffix = "%s" % (Cnf.Find("Dinstall::SuiteSuffix"))
+
+    # Process secret keyrings
+    if Cnf.has_key('Dinstall::SigningKeyring'):
+        process_keyring(Cnf['Dinstall::SigningKeyring'], secret=True)
+
+    if Cnf.has_key('Dinstall::SigningPubKeyring'):
+        process_keyring(Cnf['Dinstall::SigningPubKeyring'], secret=True)
 
+    # Process public keyrings
+    for keyring in session.query(Keyring).all():
+        process_keyring(keyring.keyring_name)
+
+    # Process pool directories
+    for component in session.query(Component):
+        directory = os.path.join( Cnf['Dir::Pool'], component.component_name )
+
+        do_dir(directory, '%s pool' % component.component_name)
+
+
+    # Process dists directories
+    # TODO: Store location of each suite in database
+    for suite in session.query(Suite):
+        suite_dir = os.path.join( Cnf['Dir::Root'], 'dists', "%s/%s" % (suite.suite_name, suite_suffix) )
+
+        # TODO: Store valid suite/component mappings in database
+        for component in session.query(Component):
+            component_name = component.component_name
+
+            sc_dir = os.path.join(suite_dir, component_name)
+
+            do_dir(sc_dir, "%s/%s" % (suite.suite_name, component_name))
+
+            for arch in suite.architectures:
+                if arch.arch_string == 'source':
+                    arch_string = 'source'
+                else:
+                    arch_string = 'binary-%s' % arch.arch_string
+
+                suite_arch_dir = os.path.join(sc_dir, arch_string)
+
+                do_dir(suite_arch_dir, "%s/%s/%s" % (suite.suite_name, component_name, arch_string))
 
 ################################################################################
 
 def main ():
     """Initial setup of an archive."""
 
-    global AptCnf, Cnf
+    global Cnf
 
     Cnf = utils.get_conf()
     arguments = [('h', "help", "Init-Dirs::Options::Help")]
@@ -124,6 +177,8 @@ def main ():
         if not Cnf.has_key("Init-Dirs::Options::%s" % (i)):
             Cnf["Init-Dirs::Options::%s" % (i)] = ""
 
+    d = DBConn()
+
     arguments = apt_pkg.ParseCommandLine(Cnf, arguments, sys.argv)
 
     options = Cnf.SubTree("Init-Dirs::Options")
@@ -133,9 +188,6 @@ def main ():
         utils.warn("dak init-dirs takes no arguments.")
         usage(exit_code=1)
 
-    AptCnf = apt_pkg.newConfiguration()
-    apt_pkg.ReadConfigFileISC(AptCnf, utils.which_apt_conf_file())
-
     create_directories()
 
 ################################################################################
index 0ab6a2db61ab5746f12559e54e8cac01f70f7403..1a25369789518406cfdd0fd293b4e73c74e03e02 100755 (executable)
@@ -611,13 +611,16 @@ def check_daily_lock():
 
     cnf = Config()
     try:
-        os.open(cnf["Process-New::DinstallLockFile"],
+        lockfile = cnf.get("Process-New::DinstallLockFile",
+                           os.path.join(cnf['Dir::Lock'], 'processnew.lock'))
+
+        os.open(lockfile,
                 os.O_RDONLY | os.O_CREAT | os.O_EXCL)
     except OSError, e:
         if e.errno == errno.EEXIST or e.errno == errno.EACCES:
             raise CantGetLockError
 
-    os.unlink(cnf["Process-New::DinstallLockFile"])
+    os.unlink(lockfile)
 
 
 @contextlib.contextmanager
@@ -629,7 +632,10 @@ def lock_package(package):
     @param package: source package name to lock
     """
 
-    path = os.path.join(Config()["Process-New::LockDir"], package)
+    cnf = Config()
+
+    path = os.path.join(cnf.get("Process-New::LockDir", cnf['Dir::Lock']), package)
+
     try:
         fd = os.open(path, os.O_CREAT | os.O_EXCL | os.O_RDONLY)
     except OSError, e:
index 98c80f0af85dd0b50bcbed1e6e8b856b80a2d11e..ec7b3a7d2fe55abbf089dcf65f0910f97ef3e1d5 100755 (executable)
@@ -44,7 +44,8 @@ except ImportError:
 
 from daklib import utils
 from daklib.queue import Upload
-from daklib.dbconn import DBConn, has_new_comment, DBChange, DBSource, get_uid_from_fingerprint
+from daklib.dbconn import DBConn, has_new_comment, DBChange, DBSource, \
+                          get_uid_from_fingerprint, get_policy_queue
 from daklib.textutils import fix_maintainer
 from daklib.dak_exceptions import *
 
@@ -56,7 +57,7 @@ row_number = 0
 
 def usage(exit_code=0):
     print """Usage: dak queue-report
-Prints a report of packages in queue directories (usually new and byhand).
+Prints a report of packages in queues (usually new and byhand).
 
   -h, --help                show this help and exit.
   -8, --822                 writes 822 formated output to the location set in dak.conf
@@ -625,15 +626,15 @@ def main():
     # Initialize db so we can get the NEW comments
     dbconn = DBConn()
 
-    directories = [ ]
+    queue_names = [ ]
 
     if Cnf.has_key("Queue-Report::Options::Directories"):
         for i in Cnf["Queue-Report::Options::Directories"].split(","):
-            directories.append(i)
+            queue_names.append(i)
     elif Cnf.has_key("Queue-Report::Directories"):
-        directories = Cnf.ValueList("Queue-Report::Directories")
+        queue_names = Cnf.ValueList("Queue-Report::Directories")
     else:
-        directories = [ "byhand", "new" ]
+        queue_names = [ "byhand", "new" ]
 
     if Cnf.has_key("Queue-Report::Options::Rrd"):
         rrd_dir = Cnf["Queue-Report::Options::Rrd"]
@@ -647,9 +648,16 @@ def main():
         # Open the report file
         f = open(Cnf["Queue-Report::ReportLocations::822Location"], "w")
 
-    for directory in directories:
-        changes_files = glob.glob("%s/*.changes" % (Cnf["Dir::Queue::%s" % (directory)]))
-        process_changes_files(changes_files, directory, f, rrd_dir)
+    session = dbconn.session()
+
+    for queue_name in queue_names:
+        queue = get_policy_queue(queue_name, session)
+        if queue:
+            directory = os.path.abspath(queue.path)
+            changes_files = glob.glob("%s/*.changes" % (directory))
+            process_changes_files(changes_files, os.path.basename(directory), f, rrd_dir)
+        else:
+            utils.warn("Cannot find queue %s" % queue_name)
 
     if Cnf.has_key("Queue-Report::Options::822"):
         f.close()
index 2147524956b823de7ff11dc972e63aec69f7971e..0245b957e67c99c398bf588d291605219899e151 100755 (executable)
@@ -46,7 +46,7 @@ from daklib.daklog import Logger
 ################################################################################
 
 Cnf = None
-required_database_schema = 64
+required_database_schema = 65
 
 ################################################################################
 
@@ -127,13 +127,15 @@ Updates dak's database schema to the lastest version. You should disable crontab
                 connect_str = "service=%s" % cnf["DB::Service"]
             else:
                 connect_str = "dbname=%s"% (cnf["DB::Name"])
-                if cnf["DB::Host"] != '': connect_str += " host=%s" % (cnf["DB::Host"])
-                if cnf["DB::Port"] != '-1': connect_str += " port=%d" % (int(cnf["DB::Port"]))
+                if cnf.has_key("DB::Host") and cnf["DB::Host"] != '':
+                    connect_str += " host=%s" % (cnf["DB::Host"])
+                if cnf.has_key("DB::Port") and cnf["DB::Port"] != '-1':
+                    connect_str += " port=%d" % (int(cnf["DB::Port"]))
 
             self.db = psycopg2.connect(connect_str)
 
-        except:
-            print "FATAL: Failed connect to database"
+        except Exception, e:
+            print "FATAL: Failed connect to database (%s)" % str(e)
             sys.exit(1)
 
         database_revision = int(self.get_db_rev())
@@ -198,8 +200,11 @@ Updates dak's database schema to the lastest version. You should disable crontab
             self.usage(exit_code=1)
 
         try:
-            lock_fd = os.open(os.path.join(cnf["Dir::Lock"], 'dinstall.lock'), os.O_RDWR | os.O_CREAT)
-            fcntl.lockf(lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
+            if os.path.isdir(cnf["Dir::Lock"]):
+                lock_fd = os.open(os.path.join(cnf["Dir::Lock"], 'dinstall.lock'), os.O_RDWR | os.O_CREAT)
+                fcntl.lockf(lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
+            else:
+                utils.warn("Lock directory doesn't exist yet - not locking")
         except IOError, e:
             if errno.errorcode[e.errno] == 'EACCES' or errno.errorcode[e.errno] == 'EAGAIN':
                 utils.fubar("Couldn't obtain lock; assuming another 'dak process-unchecked' is already running.")
index d562ca10ca21727362cfa99a607260f57e626a05..1fa7974f5d0f5e2f2cdd4101c1621722bf86a731 100755 (executable)
@@ -3008,11 +3008,11 @@ __all__.append('get_suite')
 
 ################################################################################
 
-# TODO: should be removed because the implementation is too trivial
 @session_wrapper
 def get_suite_architectures(suite, skipsrc=False, skipall=False, session=None):
     """
-    Returns list of Architecture objects for given C{suite} name
+    Returns list of Architecture objects for given C{suite} name. The list is
+    empty if suite does not exist.
 
     @type suite: str
     @param suite: Suite name to search for
@@ -3033,48 +3033,15 @@ def get_suite_architectures(suite, skipsrc=False, skipall=False, session=None):
     @return: list of Architecture objects for the given name (may be empty)
     """
 
-    return get_suite(suite, session).get_architectures(skipsrc, skipall)
+    try:
+        return get_suite(suite, session).get_architectures(skipsrc, skipall)
+    except AttributeError:
+        return []
 
 __all__.append('get_suite_architectures')
 
 ################################################################################
 
-class SuiteSrcFormat(object):
-    def __init__(self, *args, **kwargs):
-        pass
-
-    def __repr__(self):
-        return '<SuiteSrcFormat (%s, %s)>' % (self.suite_id, self.src_format_id)
-
-__all__.append('SuiteSrcFormat')
-
-@session_wrapper
-def get_suite_src_formats(suite, session=None):
-    """
-    Returns list of allowed SrcFormat for C{suite}.
-
-    @type suite: str
-    @param suite: Suite name to search for
-
-    @type session: Session
-    @param session: Optional SQL session object (a temporary one will be
-    generated if not supplied)
-
-    @rtype: list
-    @return: the list of allowed source formats for I{suite}
-    """
-
-    q = session.query(SrcFormat)
-    q = q.join(SuiteSrcFormat)
-    q = q.join(Suite).filter_by(suite_name=suite)
-    q = q.order_by('format_name')
-
-    return q.all()
-
-__all__.append('get_suite_src_formats')
-
-################################################################################
-
 class Uid(ORMObject):
     def __init__(self, uid = None, name = None):
         self.uid = uid
@@ -3607,15 +3574,11 @@ class DBConn(object):
                properties = dict(suite_id = self.tbl_suite.c.id,
                                  policy_queue = relation(PolicyQueue),
                                  copy_queues = relation(BuildQueue,
-                                     secondary=self.tbl_suite_build_queue_copy)),
+                                     secondary=self.tbl_suite_build_queue_copy),
+                                 srcformats = relation(SrcFormat, secondary=self.tbl_suite_src_formats,
+                                     backref=backref('suites', lazy='dynamic'))),
                 extension = validator)
 
-        mapper(SuiteSrcFormat, self.tbl_suite_src_formats,
-               properties = dict(suite_id = self.tbl_suite_src_formats.c.suite,
-                                 suite = relation(Suite, backref='suitesrcformats'),
-                                 src_format_id = self.tbl_suite_src_formats.c.src_format,
-                                 src_format = relation(SrcFormat)))
-
         mapper(Uid, self.tbl_uid,
                properties = dict(uid_id = self.tbl_uid.c.id,
                                  fingerprint = relation(Fingerprint)),
@@ -3707,15 +3670,21 @@ class DBConn(object):
 
         sqlalchemy.dialects.postgresql.base.dialect = PGDialect_psycopg2_dak
 
-        self.db_pg   = create_engine(connstr, **engine_args)
-        self.db_meta = MetaData()
-        self.db_meta.bind = self.db_pg
-        self.db_smaker = sessionmaker(bind=self.db_pg,
-                                      autoflush=True,
-                                      autocommit=False)
+        try:
+            self.db_pg   = create_engine(connstr, **engine_args)
+            self.db_meta = MetaData()
+            self.db_meta.bind = self.db_pg
+            self.db_smaker = sessionmaker(bind=self.db_pg,
+                                          autoflush=True,
+                                          autocommit=False)
+
+            self.__setuptables()
+            self.__setupmappers()
+
+        except OperationalError, e:
+            import utils
+            utils.fubar("Cannot connect to database (%s)" % str(e))
 
-        self.__setuptables()
-        self.__setupmappers()
         self.pid = os.getpid()
 
     def session(self, work_mem = 0):
index a8ea3035df38102937f0f6b32720c5c43fa05272..a44ad6d2793246364d4e90b5d867b78cccd36e18 100755 (executable)
@@ -879,15 +879,22 @@ class Upload(object):
                 # Check in one of the other directories
                 source_epochless_version = re_no_epoch.sub('', source_version)
                 dsc_filename = "%s_%s.dsc" % (source_package, source_epochless_version)
-                if os.path.exists(os.path.join(cnf["Dir::Queue::Byhand"], dsc_filename)):
+
+                byhand_dir = get_policy_queue('byhand', session).path
+                new_dir = get_policy_queue('new', session).path
+
+                if os.path.exists(os.path.join(byhand_dir, dsc_filename)):
                     entry["byhand"] = 1
-                elif os.path.exists(os.path.join(cnf["Dir::Queue::New"], dsc_filename)):
+                elif os.path.exists(os.path.join(new_dir, dsc_filename)):
                     entry["new"] = 1
                 else:
                     dsc_file_exists = False
-                    for myq in ["Embargoed", "Unembargoed", "ProposedUpdates", "OldProposedUpdates"]:
-                        if cnf.has_key("Dir::Queue::%s" % (myq)):
-                            if os.path.exists(os.path.join(cnf["Dir::Queue::" + myq], dsc_filename)):
+                    # TODO: Don't hardcode this list: use all relevant queues
+                    #       The question is how to determine what is relevant
+                    for queue_name in ["embargoed", "unembargoed", "proposedupdates", "oldproposedupdates"]:
+                        queue = get_policy_queue(queue_name, session)
+                        if queue:
+                            if os.path.exists(os.path.join(queue.path, dsc_filename)):
                                 dsc_file_exists = True
                                 break
 
@@ -1048,10 +1055,11 @@ class Upload(object):
 
         for f, entry in self.pkg.files.items():
             # Ensure the file does not already exist in one of the accepted directories
-            for d in [ "Byhand", "New", "ProposedUpdates", "OldProposedUpdates", "Embargoed", "Unembargoed" ]:
-                if not cnf.has_key("Dir::Queue::%s" % (d)): continue
-                if os.path.exists(os.path.join(cnf["Dir::Queue::%s" % (d) ], f)):
-                    self.rejects.append("%s file already exists in the %s directory." % (f, d))
+            # TODO: Dynamically generate this list
+            for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates", "embargoed", "unembargoed" ]:
+                queue = get_policy_queue(queue_name, session)
+                if queue and os.path.exists(os.path.join(queue.path, f)):
+                    self.rejects.append("%s file already exists in the %s queue." % (f, queue_name))
 
             if not re_taint_free.match(f):
                 self.rejects.append("!!WARNING!! tainted filename: '%s'." % (f))
@@ -1172,6 +1180,9 @@ class Upload(object):
         if not self.pkg.changes["architecture"].has_key("source"):
             return True
 
+        if session is None:
+            session = DBConn().session()
+
         (status, reason) = self.load_dsc(action=action)
         if not status:
             self.rejects.append(reason)
@@ -1209,7 +1220,11 @@ class Upload(object):
 
         # Only a limited list of source formats are allowed in each suite
         for dist in self.pkg.changes["distribution"].keys():
-            allowed = [ x.format_name for x in get_suite_src_formats(dist, session) ]
+            suite = get_suite(dist, session=session)
+            if not suite:
+                self.rejects.append("%s: cannot find suite %s when checking source formats" % (dsc_filename, dist))
+                continue
+            allowed = [ x.format_name for x in suite.srcformats ]
             if self.pkg.dsc["format"] not in allowed:
                 self.rejects.append("%s: source format '%s' not allowed in %s (accepted: %s) " % (dsc_filename, self.pkg.dsc["format"], dist, ", ".join(allowed)))
 
@@ -1310,8 +1325,8 @@ class Upload(object):
         # Extract the source
         try:
             unpacked = UnpackedSource(dsc_filename)
-        except:
-            self.rejects.append("'dpkg-source -x' failed for %s." % dsc_filename)
+        except Exception, e:
+            self.rejects.append("'dpkg-source -x' failed for %s. (%s)" % (dsc_filename, str(e)))
             return
 
         if not cnf.Find("Dir::BTSVersionTrack"):
@@ -1494,16 +1509,16 @@ class Upload(object):
                 continue
 
             # Look in some other queues for the file
-            queues = ('New', 'Byhand', 'ProposedUpdates',
-                'OldProposedUpdates', 'Embargoed', 'Unembargoed')
+            queue_names = ['new', 'byhand',
+                           'proposedupdates', 'oldproposedupdates',
+                           'embargoed', 'unembargoed']
 
-            for queue in queues:
-                if not cnf.get('Dir::Queue::%s' % queue):
+            for queue_name in queue_names:
+                queue = get_policy_queue(queue_name, session)
+                if not queue:
                     continue
 
-                queuefile_path = os.path.join(
-                    cnf['Dir::Queue::%s' % queue], filename
-                )
+                queuefile_path = os.path.join(queue.path, filename)
 
                 if not os.path.exists(queuefile_path):
                     # Does not exist in this queue
@@ -1992,26 +2007,31 @@ distribution."""
         """
 
         cnf = Config()
-        announcetemplate = os.path.join(cnf["Dir::Templates"], 'process-unchecked.announce')
+
+        # Skip all of this if not sending mail to avoid confusing people
+        if cnf.has_key("Dinstall::Options::No-Mail") and cnf["Dinstall::Options::No-Mail"]:
+            return ""
 
         # Only do announcements for source uploads with a recent dpkg-dev installed
         if float(self.pkg.changes.get("format", 0)) < 1.6 or not \
            self.pkg.changes["architecture"].has_key("source"):
             return ""
 
-        lists_done = {}
-        summary = ""
+        announcetemplate = os.path.join(cnf["Dir::Templates"], 'process-unchecked.announce')
 
-        self.Subst["__SHORT_SUMMARY__"] = short_summary
+        lists_todo = {}
+        summary = ""
 
+        # Get a unique list of target lists
         for dist in self.pkg.changes["distribution"].keys():
             suite = get_suite(dist)
             if suite is None: continue
-            announce_list = suite.announce
-            if announce_list == "" or lists_done.has_key(announce_list):
-                continue
+            for tgt in suite.announce:
+                lists_todo[tgt] = 1
+
+        self.Subst["__SHORT_SUMMARY__"] = short_summary
 
-            lists_done[announce_list] = 1
+        for announce_list in lists_todo.keys():
             summary += "Announcing to %s\n" % (announce_list)
 
             if action:
@@ -2314,7 +2334,7 @@ distribution."""
             if os.access(file_entry, os.R_OK) == 0:
                 continue
 
-            dest_file = os.path.join(cnf["Dir::Queue::Reject"], file_entry)
+            dest_file = os.path.join(cnf["Dir::Reject"], file_entry)
 
             try:
                 dest_fd = os.open(dest_file, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0644)
@@ -2326,7 +2346,7 @@ distribution."""
                     except NoFreeFilenameError:
                         # Something's either gone badly Pete Tong, or
                         # someone is trying to exploit us.
-                        utils.warn("**WARNING** failed to find a free filename for %s in %s." % (file_entry, cnf["Dir::Queue::Reject"]))
+                        utils.warn("**WARNING** failed to find a free filename for %s in %s." % (file_entry, cnf["Dir::Reject"]))
                         return
 
                     # Make sure we really got it
@@ -2396,7 +2416,7 @@ distribution."""
         cnf = Config()
 
         reason_filename = self.pkg.changes_file[:-8] + ".reason"
-        reason_filename = os.path.join(cnf["Dir::Queue::Reject"], reason_filename)
+        reason_filename = os.path.join(cnf["Dir::Reject"], reason_filename)
 
         # Move all the files into the reject directory
         reject_files = self.pkg.files.keys() + [self.pkg.changes_file]
@@ -2746,12 +2766,15 @@ distribution."""
                     orig_files[dsc_name]["path"] = old_file
                     orig_files[dsc_name]["location"] = x.location.location_id
                 else:
-                    # TODO: Record the queues and info in the DB so we don't hardcode all this crap
+                    # TODO: Determine queue list dynamically
                     # Not there? Check the queue directories...
-                    for directory in [ "New", "Byhand", "ProposedUpdates", "OldProposedUpdates", "Embargoed", "Unembargoed" ]:
-                        if not Cnf.has_key("Dir::Queue::%s" % (directory)):
+                    for queue_name in [ "byhand", "new", "proposedupdates", "oldproposedupdates", "embargoed", "unembargoed" ]:
+                        queue = get_policy_queue(queue_name, session)
+                        if not queue:
                             continue
-                        in_otherdir = os.path.join(Cnf["Dir::Queue::%s" % (directory)], dsc_name)
+
+                        in_otherdir = os.path.join(queue.path, dsc_name)
+
                         if os.path.exists(in_otherdir):
                             in_otherdir_fh = utils.open_file(in_otherdir)
                             actual_md5 = apt_pkg.md5sum(in_otherdir_fh)
@@ -2798,10 +2821,10 @@ distribution."""
                     source_epochless_version = re_no_epoch.sub('', source_version)
                     dsc_filename = "%s_%s.dsc" % (source_package, source_epochless_version)
                     found = False
-                    for q in ["Embargoed", "Unembargoed", "Newstage"]:
-                        if cnf.has_key("Dir::Queue::%s" % (q)):
-                            if os.path.exists(cnf["Dir::Queue::%s" % (q)] + '/' + dsc_filename):
-                                found = True
+                    for queue_name in ["embargoed", "unembargoed", "newstage"]:
+                        queue = get_policy_queue(queue_name, session)
+                        if queue and os.path.exists(os.path.join(queue.path, dsc_filename)):
+                            found = True
                     if not found:
                         self.rejects.append("no source found for %s %s (%s)." % (source_package, source_version, f))
 
index 8878e55c12486437f88e95e26cf75c383150a331..8d890d20ec528281e7161ad0c71d29d4787af87c 100755 (executable)
@@ -89,11 +89,11 @@ def package_to_queue(u, summary, short_summary, queue, chg, session, announce=No
 
 def is_unembargo(u):
    session = DBConn().session()
-   cnf = Config()
 
    # If we dont have the disembargo queue we are not on security and so not interested
    # in doing any security queue handling
-   if not get_policy_queue("disembargo"):
+   disembargo_queue = get_policy_queue("disembargo")
+   if not disembargo_queue:
        return False
 
    # If we already are in newstage, then it means this just got passed through and accepted
@@ -109,10 +109,8 @@ def is_unembargo(u):
        session.close()
        return True
 
-   oldcwd = os.getcwd()
-   os.chdir(cnf["Dir::Queue::Disembargo"])
-   disdir = os.getcwd()
-   os.chdir(oldcwd)
+   # Ensure we don't have a / on the end or something
+   disdir = os.path.abspath(disembargo_queue.path)
 
    ret = False
 
index a44e363238b44b2173c57d3e7238e557beebd381..0402264bcdee6b8867192897185500c7e6a8f22a 100644 (file)
@@ -1,14 +1,16 @@
 Source: dak
 Section: misc
 Priority: extra
-Build-Depends: postgresql-dev, libapt-pkg-dev, sp, docbook, docbook-utils, python
-Maintainer: James Troup <james@nocrew.org>
-Standards-Version: 3.5.6.0
+Build-Depends: python-all-dev
+Maintainer: Debian FTP-Masters <ftpmaster@debian.org>
+Uploaders: Mark Hymers <mhy@debian.org>, Joerg Jaspert <joerg@debian.org>, Torsten Werner <twerner@debian.org>
+Standards-Version: 3.9.2
 
 Package: dak
-Architecture: any
-Depends: ${python:Depends}, python-pygresql, python2.1-email | python (>= 2.2), python-apt, apt-utils, gnupg (>= 1.0.6-1), ${shlibs:Depends}, dpkg-dev, python-syck (>= 0.61.2-1), libemail-send-perl
-Suggests: lintian, linda, less, binutils-multiarch, symlinks, postgresql (>= 7.1.0), dsync
+Architecture: all
+Depends: ${python:Depends}, python-psycopg2, python-sqlalchemy, python-apt,
+         gnupg, dpkg-dev, lintian, binutils-multiarch, python-yaml, less,
+         python-ldap, python-pyrss2gen, python-rrdtool, symlinks
 Description: Debian's archive maintenance scripts
  This is a collection of archive maintenance scripts used by the
  Debian project.
index c7a59659f40bfbf4a3203c6c06fe1d59c7f9e975..7fabb4ee281b245a20afbf1f54cde999ab7d3b95 100644 (file)
@@ -146,7 +146,7 @@ Dinstall
 
     //// KeyAutoFetch (optional): boolean (default: false), which if set (and
     //// not overriden by explicit argument to check_signature()) will enable
-    //// auto key retrieval.  Requires KeyServer and SigningKeyIds variables be
+    //// auto key retrieval.  Requires KeyServer variable be
     //// set.  NB: you should only enable this variable on production systems
     //// if you have strict control of your upload queue.
     // KeyAutoFetch "false";
index 10fcde93197741075dc22e0ccf16e44e3a88afd1..8ad674c352f448f161c90b4c803b813f3133b5c4 100644 (file)
@@ -46,7 +46,6 @@ o Information display:
 Generic and useful, but only for those with existing archives
 -------------------------------------------------------------
 
-o dak poolize - migrates packages from legacy locations to the pool
 o dak init-archive - initializes a projectb database from an exisiting archive
 
 Generic but not overly useful (in normal use)
@@ -88,7 +87,6 @@ Scripts invoked by other scripts
 --------------------------------
 
 o dak examine-package - invoked by 'dak process-new' to "check" NEW packages
-o dak symlink-dists - invoked by 'dak poolize' to determine packages still in legacy locations
 
                        How do I get started?
                        =====================
index 717b89ebbf1fad686a43481771c513ee9f375edb..2aa065deb966b7982b623367d4beb247e46746e3 100644 (file)
@@ -353,7 +353,6 @@ ls                        X          X
 make-maintainers          X             X
 make-overrides            X
 make-suite-file-list      X
-poolize                   X             X
 process-accepted          X             X
 process-new               X             X
 process-unchecked         X
index 886b390e72e6094979da1a686e74a41c5b3a024f..0a1d4ddfb50ea9ff318d02df30860f3739d0a487 100644 (file)
@@ -1,8 +1,12 @@
 Initialising a dak database schema
 ==================================
 
-The following packages are needed:
+The following packages are needed for the database:
  * postgresql-9.0 postgresql-client-9.0 postgresql-plperl-9.0 postgresql-plpython-9.0 postgresql-9.0-debversion 
+and the following packages for dak itself:
+ * python-psycopg2 python-sqlalchemy python-apt gnupg dpkg-dev lintian
+   binutils-multiarch python-yaml less python-ldap python-pyrss2gen python-rrdtool
+   symlinks
 
 (the schema assumes at least postgresql 9.0; ftpmaster in Debian currently uses
 the squeeze postgresql 9.0 backport)
@@ -16,16 +20,20 @@ The following roles are assumed to exist:
 For the purposes of this document, we'll be working in /srv/dak
 
 Set up the dak user on both the system and in postgres:
-# sudo adduser dak
-# sudo addgroup ftpmaster
-# sudo addgroup dak ftpmaster
+# sudo addgroup --system ftpmaster
+# sudo adduser --system dak --ingroup ftpmaster --shell /bin/bash
 # sudo -u postgres createuser -s dak
 
 Set up the dak directory:
+# sudo mkdir /etc/dak
 # sudo mkdir /srv/dak
 # sudo chown dak:ftpmaster /srv/dak
 # sudo chmod 2775 /srv/dak
 
+Create a symlink to /srv/dak/dak.conf in /etc/dak
+(we'll create the config file in a bit)
+# sudo ln -s /srv/dak/dak.conf /etc/dak/dak.conf
+
 Become the dak user:
 # sudo -u dak -s -H
 
@@ -37,25 +45,195 @@ Create the additional roles:
 Create an empty database with SQL_ASCII encoding:
 # createdb -T template0 -E SQL_ASCII -O dak projectb
 
-Import the schema:
-# psql -f current_schema.sql -d projectb
+Import the schema.  We redirect STDOUT to /dev/null as otherwise it's
+impossible to see if something fails.
+# psql -1 -f current_schema.sql -d projectb >/dev/null
 
 Set up some core data in projectb to get started (read the init_vars file if
 you wish to customise various aspects):
 # ./init_core
 
 Create a minimal dak.conf
-# ./init_minimal_conf
-# cp dak-minimal.conf /etc/dak/dak.conf
+# ./init_minimal_conf > /srv/dak/dak.conf
 
 Set up a symlink somewhere
 # mkdir ~dak/bin
 # ln -s /path/to/dak.py ~dak/bin/dak
 
+At this point, you should be able to test that the database schema is
+up-to-date
+# dak update-db
+
+Run dak init-dirs to set up the initial /srv/dak tree
+# dak init-dirs
+
+Copy the email templates into the /srv/dak tree.
+WARNING: Please check these templates over and customise as necessary
+# cp templates/* /srv/dak/templates/
+
+Set up a private signing key: don't set a passphrase as dak will not
+pass one through to gpg.  Guard this key carefully!
+The key only needs to be able to sign, it doesn't need to be able
+to encrypt.
+# gpg --no-default-keyring --secret-keyring /srv/dak/keyrings/s3kr1t/dot-gnupg/secring.gpg --keyring /srv/dak/keyrings/s3kr1t/dot-gnupg/pubring.gpg --gen-key
+Remember the signing key id for when creating the suite below.
+Here we'll pretend it is DDDDDDDD for convenience
+
+Import some developer keys.
+Either import from keyservers (here AAAAAAAA):
+# gpg --no-default-keyring --keyring /srv/dak/keyrings/upload-keyring.gpg --recv-key AAAAAAAA
+or import from files:
+# gpg --no-default-keyring --keyring /srv/dak/keyrings/upload-keyring.gpg --import /path/to/keyfile
+
+Import the developer keys into the database
+The -U '%s' tells dak to add UIDs automatically
+# dak import-keyring -U '%s' /srv/dak/keyrings/upload-keyring.gpg
+
 Add some architectures you care about:
 # dak admin architecture add i386 "Intel x86 port"
 # dak admin architecture add amd64 "AMD64 port"
 
 Add a suite (origin=, label= and codename= are optional)
-# dak admin suite add-all-arches unstable x.y.z origin=MyDistro label=Master codename=sid
+signingkey= will ensure that Release files are signed
+# dak admin suite add-all-arches unstable x.y.z origin=MyDistro label=Master codename=sid signingkey=DDDDDDDD
+
+Re-run dak init-dirs to add new suite directories to /srv/dak
+# dak init-dirs
+
+#######################################################################
+# Example package flow
+#######################################################################
+
+For this example, we've grabbed and built the hello source package
+for AMD64 and copied it into /srv/dak/queue/unchecked.
+
+We start by performing initial package checks which will
+result in the package being moved to NEW
+# cd /srv/dak/queue/unchecked
+# dak process-upload *.changes
+
+-----------------------------------------------------------------------
+hello_2.6-1_amd64.changes
+NEW for unstable
+
+
+(new) hello_2.6-1.debian.tar.gz optional devel
+(new) hello_2.6-1.dsc optional devel
+(new) hello_2.6-1_amd64.deb optional devel
+The classic greeting, and a good example
+ The GNU hello program produces a familiar, friendly greeting.  It
+ allows non-programmers to use a classic computer science tool which
+ would otherwise be unavailable to them.
+ .
+ Seriously, though: this is an example of how to do a Debian package.
+ It is the Debian version of the GNU Project's `hello world' program
+ (which is itself an example for the GNU Project).
+(new) hello_2.6.orig.tar.gz optional devel
+Changes: hello (2.6-1) unstable; urgency=low
+ .
+  * New upstream release.
+  * Drop unused INSTALL_PROGRAM stuff.
+  * Switch to 3.0 (quilt) source format.
+  * Standards-Version: 3.9.1 (no special changes for this).
+
+
+Override entries for your package:
+
+Announcing to debian-devel-changes@lists.debian.org
+
+[N]ew, Skip, Quit ?N
+Moving to NEW queue.
+Sending new ack.
+-----------------------------------------------------------------------
+
+We can now look at the NEW queue-report
+# dak queue-report
+-----------------------------------------------------------------------
+NEW
+---
+
+hello | 2.6-1 | source amd64 | 5 seconds old
+
+1 new source package / 1 new package in total.
+-----------------------------------------------------------------------
+
+And we can then process the NEW queue:
+# cd /srv/dak/queue/new
+# dak process-new *.changes
+
+-----------------------------------------------------------------------
+hello_2.6-1_amd64.changes
+NEW
+
+hello                optional             devel
+Add overrides, Edit overrides, Check, Manual reject, Note edit, Prod, [S]kip, Quit ?A
+ACCEPT
+-----------------------------------------------------------------------
+
+At this stage, the package has been ACCEPTed from NEW into NEWSTAGE.
+We now need to finally ACCEPT it into the pool:
+
+# cd /srv/dak/queue/newstage
+# dak process-upload *.changes
+
+-----------------------------------------------------------------------
+hello_2.6-1_amd64.changes
+ACCEPT
+
+
+hello_2.6-1.debian.tar.gz
+  to main/h/hello/hello_2.6-1.debian.tar.gz
+hello_2.6-1.dsc
+  to main/h/hello/hello_2.6-1.dsc
+hello_2.6-1_amd64.deb
+  to main/h/hello/hello_2.6-1_amd64.deb
+hello_2.6.orig.tar.gz
+  to main/h/hello/hello_2.6.orig.tar.gz
+
+
+Override entries for your package:
+hello_2.6-1.dsc - optional devel
+hello_2.6-1_amd64.deb - optional devel
+
+Announcing to debian-devel-changes@lists.debian.org
+[A]ccept, Skip, Quit ?A
+Installing.
+Installed 1 package set, 646 KB.
+-----------------------------------------------------------------------
+
+We can now see that dak knows about the package:
+# dak ls -S hello
+
+-----------------------------------------------------------------------
+     hello |      2.6-1 |      unstable | source, amd64
+-----------------------------------------------------------------------
+
+# dak control-suite -l unstable
+
+-----------------------------------------------------------------------
+hello 2.6-1 amd64
+hello 2.6-1 source
+-----------------------------------------------------------------------
+
+Next, we can generate the packages and sources files:
+# dak generate-packages-sources2
+(zcat /srv/dak/ftp/dists/unstable/main/binary-amd64/Packages.gz for instance)
+
+And finally, we can generate the signed Release files:
+# dak generate-release
+
+-----------------------------------------------------------------------
+Processing unstable
+-----------------------------------------------------------------------
+(Look at /srv/dak/ftp/dists/unstable/Release, Release.gpg and InRelease)
+
+
+#######################################################################
+# Next steps
+#######################################################################
+
+The debian archive automates most of these steps in jobs called
+cron.unchecked, cron.hourly and cron.dinstall.
 
+TODO: Write example (simplified) versions of these cronjobs which will
+do for most installs.
index 29383442a718a59b57d97e3bf4fa7e9df37d2af8..a2d28e895bfc3eee45c68431a7c21f67b38c49c1 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 set -u
 
-POOLPATH="${DAKBASE}/ftp/pool"
+POOLPATH="${DAKBASE}/ftp/pool/"
 
 echo "Setting up archive and locations"
 psql -c "INSERT INTO archive (name, origin_server, description)
index a793aec9a02972fc7fe620e57fc387099813fa36..51d5ade466943c87ba14c78f5483f8fc4e6d9a4f 120000 (symlink)
@@ -1 +1 @@
-schema_64.sql
\ No newline at end of file
+schema_65.sql
\ No newline at end of file
index 7f4c9dfa610c8209db1ea0758207c1a5a1ac93a3..57f49489e62eea19a31b7f07b0efc82cba68100a 100644 (file)
@@ -18,7 +18,6 @@ Dinstall
 {
    SigningKeyring "__DAKBASE__/keyrings/s3kr1t/dot-gnupg/secring.gpg";
    SigningPubKeyring "__DAKBASE__/keyrings/s3kr1t/dot-gnupg/pubring.gpg";
-   SigningKeyIds "__ARCHIVEKEYID__";
 
    Options
    {
@@ -29,8 +28,6 @@ Dinstall
    MyAdminAddress "dak@__DAKFQDN__";
    MyDistribution "TestDakInstance";
 
-   LockFile "__DAKBASE__/lock/dinstall.lock";
-
    FutureTimeTravelGrace 28800; // 8 hours
    PastCutoffYear "1984";
    SkipTime 10;
@@ -48,15 +45,8 @@ Dir
   Morgue "__DAKBASE__/morgue/";
   Holding "__DAKBASE__/holding/";
   Done "__DAKBASE__/done/";
-
-  Queue
-  {
-    Byhand "__DAKBASE__/queue/byhand/";
-    New "__DAKBASE__/queue/new/";
-    NewStage "__DAKBASE__/queue/newstage/";
-    Reject "__DAKBASE__/queue/reject/";
-    Unchecked "__DAKBASE__/queue/unchecked/";
-  };
+  Reject "__DAKBASE__/reject/";
+  TempPath "__DAKBASE__/tmp/";
 };
 
 Urgency
index 82400f46130e2743978f3095d05859878e86e9fa..41c8e9e89f3909c64e38c74fe2008cd315c124d2 100755 (executable)
@@ -2,7 +2,4 @@
 
 . ./init_vars
 
-cp dak-minimal.conf.template dak-minimal.conf
-
-sed -i "s@__DAKBASE__@${DAKBASE}@" dak-minimal.conf
-sed -i "s@__DAKFQDN__@${DAKFQDN}@" dak-minimal.conf
+sed -e "s@__DAKBASE__@${DAKBASE}@" -e "s@__DAKFQDN__@${DAKFQDN}@" dak-minimal.conf.template
diff --git a/setup/schema_64.sql b/setup/schema_64.sql
deleted file mode 100644 (file)
index 47521d0..0000000
+++ /dev/null
@@ -1,5591 +0,0 @@
---
--- PostgreSQL database dump
---
-
-SET statement_timeout = 0;
-SET client_encoding = 'SQL_ASCII';
-SET standard_conforming_strings = off;
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-SET escape_string_warning = off;
-
---
--- Name: plperl; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
---
-
-CREATE OR REPLACE PROCEDURAL LANGUAGE plperl;
-
-
-ALTER PROCEDURAL LANGUAGE plperl OWNER TO dak;
-
---
--- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
---
-
-CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
-
-
-ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO dak;
-
---
--- Name: plpythonu; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
---
-
-CREATE OR REPLACE PROCEDURAL LANGUAGE plpythonu;
-
-
-ALTER PROCEDURAL LANGUAGE plpythonu OWNER TO dak;
-
-SET search_path = public, pg_catalog;
-
---
--- Name: debversion; Type: SHELL TYPE; Schema: public; Owner: postgres
---
-
-CREATE TYPE debversion;
-
-
---
--- Name: debversionin(cstring); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversionin(cstring) RETURNS debversion
-    LANGUAGE internal IMMUTABLE STRICT
-    AS $$textin$$;
-
-
-ALTER FUNCTION public.debversionin(cstring) OWNER TO postgres;
-
---
--- Name: debversionout(debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversionout(debversion) RETURNS cstring
-    LANGUAGE internal IMMUTABLE STRICT
-    AS $$textout$$;
-
-
-ALTER FUNCTION public.debversionout(debversion) OWNER TO postgres;
-
---
--- Name: debversionrecv(internal); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversionrecv(internal) RETURNS debversion
-    LANGUAGE internal STABLE STRICT
-    AS $$textrecv$$;
-
-
-ALTER FUNCTION public.debversionrecv(internal) OWNER TO postgres;
-
---
--- Name: debversionsend(debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversionsend(debversion) RETURNS bytea
-    LANGUAGE internal STABLE STRICT
-    AS $$textsend$$;
-
-
-ALTER FUNCTION public.debversionsend(debversion) OWNER TO postgres;
-
---
--- Name: debversion; Type: TYPE; Schema: public; Owner: postgres
---
-
-CREATE TYPE debversion (
-    INTERNALLENGTH = variable,
-    INPUT = debversionin,
-    OUTPUT = debversionout,
-    RECEIVE = debversionrecv,
-    SEND = debversionsend,
-    CATEGORY = 'S',
-    ALIGNMENT = int4,
-    STORAGE = extended
-);
-
-
-ALTER TYPE public.debversion OWNER TO postgres;
-
---
--- Name: TYPE debversion; Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON TYPE debversion IS 'Debian package version number';
-
-
---
--- Name: bin_associations_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION bin_associations_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM bin_associations$$;
-
-
-ALTER FUNCTION public.bin_associations_id_max() OWNER TO dak;
-
---
--- Name: binaries_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION binaries_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM binaries$$;
-
-
-ALTER FUNCTION public.binaries_id_max() OWNER TO dak;
-
---
--- Name: debversion(character); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion(character) RETURNS debversion
-    LANGUAGE internal IMMUTABLE STRICT
-    AS $$rtrim1$$;
-
-
-ALTER FUNCTION public.debversion(character) OWNER TO postgres;
-
---
--- Name: debversion_cmp(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_cmp(version1 debversion, version2 debversion) RETURNS integer
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_cmp';
-
-
-ALTER FUNCTION public.debversion_cmp(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_cmp(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_cmp(version1 debversion, version2 debversion) IS 'Compare Debian versions';
-
-
---
--- Name: debversion_compare_single(text, text); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION debversion_compare_single(version1 text, version2 text) RETURNS integer
-    LANGUAGE plperl IMMUTABLE STRICT
-    AS $_$
-     sub order{
-         my ($x) = @_;
-         ##define order(x) ((x) == '~' ? -1      #           : cisdigit((x)) ? 0         #           : !(x) ? 0          #           : cisalpha((x)) ? (x)       #           : (x) + 256)
-         # This comparison is out of dpkg's order to avoid
-         # comparing things to undef and triggering warnings.
-         if (not defined $x or not length $x) {
-              return 0;
-         }
-         elsif ($x eq '~') {
-              return -1;
-         }
-         elsif ($x =~ /^\d$/) {
-              return 0;
-         }
-         elsif ($x =~ /^[A-Z]$/i) {
-              return ord($x);
-         }
-         else {
-              return ord($x) + 256;
-         }
-     }
-
-     sub next_elem(\@){
-         my $a = shift;
-         return @{$a} ? shift @{$a} : undef;
-     }
-     my ($val, $ref) = @_;
-     $val = "" if not defined $val;
-     $ref = "" if not defined $ref;
-     my @val = split //,$val;
-     my @ref = split //,$ref;
-     my $vc = next_elem @val;
-     my $rc = next_elem @ref;
-     while (defined $vc or defined $rc) {
-         my $first_diff = 0;
-         while ((defined $vc and $vc !~ /^\d$/) or
-                (defined $rc and $rc !~ /^\d$/)) {
-              my $vo = order($vc); my $ro = order($rc);
-              # Unlike dpkg's verrevcmp, we only return 1 or -1 here.
-              return (($vo - $ro > 0) ? 1 : -1) if $vo != $ro;
-              $vc = next_elem @val; $rc = next_elem @ref;
-         }
-         while (defined $vc and $vc eq '0') {
-              $vc = next_elem @val;
-         }
-         while (defined $rc and $rc eq '0') {
-              $rc = next_elem @ref;
-         }
-         while (defined $vc and $vc =~ /^\d$/ and
-                defined $rc and $rc =~ /^\d$/) {
-              $first_diff = ord($vc) - ord($rc) if !$first_diff;
-              $vc = next_elem @val; $rc = next_elem @ref;
-         }
-         return 1 if defined $vc and $vc =~ /^\d$/;
-         return -1 if defined $rc and $rc =~ /^\d$/;
-         return (($first_diff  > 0) ? 1 : -1) if $first_diff;
-     }
-     return 0;
-$_$;
-
-
-ALTER FUNCTION public.debversion_compare_single(version1 text, version2 text) OWNER TO dak;
-
---
--- Name: FUNCTION debversion_compare_single(version1 text, version2 text); Type: COMMENT; Schema: public; Owner: dak
---
-
-COMMENT ON FUNCTION debversion_compare_single(version1 text, version2 text) IS 'Compare upstream or revision parts of Debian versions';
-
-
---
--- Name: debversion_eq(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_eq(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_eq';
-
-
-ALTER FUNCTION public.debversion_eq(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_eq(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_eq(version1 debversion, version2 debversion) IS 'debversion equal';
-
-
---
--- Name: debversion_ge(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_ge(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_ge';
-
-
-ALTER FUNCTION public.debversion_ge(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_ge(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_ge(version1 debversion, version2 debversion) IS 'debversion greater-than-or-equal';
-
-
---
--- Name: debversion_gt(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_gt(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_gt';
-
-
-ALTER FUNCTION public.debversion_gt(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_gt(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_gt(version1 debversion, version2 debversion) IS 'debversion greater-than';
-
-
---
--- Name: debversion_hash(debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_hash(debversion) RETURNS integer
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_hash';
-
-
-ALTER FUNCTION public.debversion_hash(debversion) OWNER TO postgres;
-
---
--- Name: debversion_larger(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_larger(version1 debversion, version2 debversion) RETURNS debversion
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_larger';
-
-
-ALTER FUNCTION public.debversion_larger(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: debversion_le(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_le(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_le';
-
-
-ALTER FUNCTION public.debversion_le(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_le(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_le(version1 debversion, version2 debversion) IS 'debversion less-than-or-equal';
-
-
---
--- Name: debversion_lt(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_lt(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_lt';
-
-
-ALTER FUNCTION public.debversion_lt(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_lt(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_lt(version1 debversion, version2 debversion) IS 'debversion less-than';
-
-
---
--- Name: debversion_ne(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_ne(version1 debversion, version2 debversion) RETURNS boolean
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_ne';
-
-
-ALTER FUNCTION public.debversion_ne(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: FUNCTION debversion_ne(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON FUNCTION debversion_ne(version1 debversion, version2 debversion) IS 'debversion not equal';
-
-
---
--- Name: debversion_smaller(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
---
-
-CREATE FUNCTION debversion_smaller(version1 debversion, version2 debversion) RETURNS debversion
-    LANGUAGE c IMMUTABLE STRICT
-    AS '$libdir/debversion', 'debversion_smaller';
-
-
-ALTER FUNCTION public.debversion_smaller(version1 debversion, version2 debversion) OWNER TO postgres;
-
---
--- Name: dsc_files_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION dsc_files_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM dsc_files$$;
-
-
-ALTER FUNCTION public.dsc_files_id_max() OWNER TO dak;
-
---
--- Name: files_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION files_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM files$$;
-
-
-ALTER FUNCTION public.files_id_max() OWNER TO dak;
-
---
--- Name: override_type_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION override_type_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM override_type$$;
-
-
-ALTER FUNCTION public.override_type_id_max() OWNER TO dak;
-
---
--- Name: priority_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION priority_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM priority$$;
-
-
-ALTER FUNCTION public.priority_id_max() OWNER TO dak;
-
---
--- Name: section_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION section_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM section$$;
-
-
-ALTER FUNCTION public.section_id_max() OWNER TO dak;
-
---
--- Name: source_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION source_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM source$$;
-
-
-ALTER FUNCTION public.source_id_max() OWNER TO dak;
-
---
--- Name: space_concat(text, text); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION space_concat(text, text) RETURNS text
-    LANGUAGE sql
-    AS $_$select case
-WHEN $2 is null or $2 = '' THEN $1
-WHEN $1 is null or $1 = '' THEN $2
-ELSE $1 || ' ' || $2
-END$_$;
-
-
-ALTER FUNCTION public.space_concat(text, text) OWNER TO dak;
-
---
--- Name: src_associations_id_max(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION src_associations_id_max() RETURNS integer
-    LANGUAGE sql
-    AS $$SELECT max(id) FROM src_associations$$;
-
-
-ALTER FUNCTION public.src_associations_id_max() OWNER TO dak;
-
---
--- Name: tfunc_set_modified(); Type: FUNCTION; Schema: public; Owner: dak
---
-
-CREATE FUNCTION tfunc_set_modified() RETURNS trigger
-    LANGUAGE plpgsql
-    AS $$
-    BEGIN NEW.modified = now(); return NEW; END;
-    $$;
-
-
-ALTER FUNCTION public.tfunc_set_modified() OWNER TO dak;
-
---
--- Name: >; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR > (
-    PROCEDURE = debversion_gt,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = <,
-    NEGATOR = >=
-);
-
-
-ALTER OPERATOR public.> (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR > (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR > (debversion, debversion) IS 'debversion greater-than';
-
-
---
--- Name: max(debversion); Type: AGGREGATE; Schema: public; Owner: postgres
---
-
-CREATE AGGREGATE max(debversion) (
-    SFUNC = debversion_larger,
-    STYPE = debversion,
-    SORTOP = >
-);
-
-
-ALTER AGGREGATE public.max(debversion) OWNER TO postgres;
-
---
--- Name: <; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR < (
-    PROCEDURE = debversion_lt,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = >,
-    NEGATOR = >=
-);
-
-
-ALTER OPERATOR public.< (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR < (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR < (debversion, debversion) IS 'debversion less-than';
-
-
---
--- Name: min(debversion); Type: AGGREGATE; Schema: public; Owner: postgres
---
-
-CREATE AGGREGATE min(debversion) (
-    SFUNC = debversion_smaller,
-    STYPE = debversion,
-    SORTOP = <
-);
-
-
-ALTER AGGREGATE public.min(debversion) OWNER TO postgres;
-
---
--- Name: space_separated_list(text); Type: AGGREGATE; Schema: public; Owner: dak
---
-
-CREATE AGGREGATE space_separated_list(text) (
-    SFUNC = space_concat,
-    STYPE = text,
-    INITCOND = ''
-);
-
-
-ALTER AGGREGATE public.space_separated_list(text) OWNER TO dak;
-
---
--- Name: <=; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR <= (
-    PROCEDURE = debversion_le,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = >=,
-    NEGATOR = >
-);
-
-
-ALTER OPERATOR public.<= (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR <= (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR <= (debversion, debversion) IS 'debversion less-than-or-equal';
-
-
---
--- Name: <>; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR <> (
-    PROCEDURE = debversion_ne,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = <>,
-    NEGATOR = =
-);
-
-
-ALTER OPERATOR public.<> (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR <> (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR <> (debversion, debversion) IS 'debversion not equal';
-
-
---
--- Name: =; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR = (
-    PROCEDURE = debversion_eq,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = =,
-    NEGATOR = <>
-);
-
-
-ALTER OPERATOR public.= (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR = (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR = (debversion, debversion) IS 'debversion equal';
-
-
---
--- Name: >=; Type: OPERATOR; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR >= (
-    PROCEDURE = debversion_ge,
-    LEFTARG = debversion,
-    RIGHTARG = debversion,
-    COMMUTATOR = <=,
-    NEGATOR = <
-);
-
-
-ALTER OPERATOR public.>= (debversion, debversion) OWNER TO postgres;
-
---
--- Name: OPERATOR >= (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
---
-
-COMMENT ON OPERATOR >= (debversion, debversion) IS 'debversion greater-than-or-equal';
-
-
---
--- Name: debversion_ops; Type: OPERATOR CLASS; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR CLASS debversion_ops
-    DEFAULT FOR TYPE debversion USING btree AS
-    OPERATOR 1 <(debversion,debversion) ,
-    OPERATOR 2 <=(debversion,debversion) ,
-    OPERATOR 3 =(debversion,debversion) ,
-    OPERATOR 4 >=(debversion,debversion) ,
-    OPERATOR 5 >(debversion,debversion) ,
-    FUNCTION 1 debversion_cmp(debversion,debversion);
-
-
-ALTER OPERATOR CLASS public.debversion_ops USING btree OWNER TO postgres;
-
---
--- Name: debversion_ops; Type: OPERATOR CLASS; Schema: public; Owner: postgres
---
-
-CREATE OPERATOR CLASS debversion_ops
-    DEFAULT FOR TYPE debversion USING hash AS
-    OPERATOR 1 =(debversion,debversion) ,
-    FUNCTION 1 debversion_hash(debversion);
-
-
-ALTER OPERATOR CLASS public.debversion_ops USING hash OWNER TO postgres;
-
-SET search_path = pg_catalog;
-
---
--- Name: CAST (character AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (character AS public.debversion) WITH FUNCTION public.debversion(character);
-
-
---
--- Name: CAST (public.debversion AS character); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (public.debversion AS character) WITHOUT FUNCTION AS ASSIGNMENT;
-
-
---
--- Name: CAST (public.debversion AS text); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (public.debversion AS text) WITHOUT FUNCTION AS IMPLICIT;
-
-
---
--- Name: CAST (public.debversion AS character varying); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (public.debversion AS character varying) WITHOUT FUNCTION AS IMPLICIT;
-
-
---
--- Name: CAST (text AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (text AS public.debversion) WITHOUT FUNCTION AS ASSIGNMENT;
-
-
---
--- Name: CAST (character varying AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
---
-
-CREATE CAST (character varying AS public.debversion) WITHOUT FUNCTION AS ASSIGNMENT;
-
-
-SET search_path = public, pg_catalog;
-
---
--- Name: bin_associations_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE bin_associations_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.bin_associations_id_seq OWNER TO dak;
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
---
--- Name: bin_associations; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE bin_associations (
-    id integer DEFAULT nextval('bin_associations_id_seq'::regclass) NOT NULL,
-    suite integer NOT NULL,
-    bin integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.bin_associations OWNER TO dak;
-
---
--- Name: binaries_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE binaries_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.binaries_id_seq OWNER TO dak;
-
---
--- Name: binaries; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE binaries (
-    id integer DEFAULT nextval('binaries_id_seq'::regclass) NOT NULL,
-    package text NOT NULL,
-    version debversion NOT NULL,
-    maintainer integer NOT NULL,
-    source integer NOT NULL,
-    architecture integer NOT NULL,
-    file integer NOT NULL,
-    type text NOT NULL,
-    sig_fpr integer,
-    install_date timestamp with time zone DEFAULT now(),
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    stanza text
-);
-
-
-ALTER TABLE public.binaries OWNER TO dak;
-
---
--- Name: bin_associations_binaries; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW bin_associations_binaries AS
-    SELECT bin_associations.id, bin_associations.bin, binaries.package, binaries.version, bin_associations.suite, binaries.architecture, binaries.source FROM (bin_associations JOIN binaries ON ((bin_associations.bin = binaries.id)));
-
-
-ALTER TABLE public.bin_associations_binaries OWNER TO dak;
-
---
--- Name: source_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE source_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.source_id_seq OWNER TO dak;
-
---
--- Name: source; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE source (
-    id integer DEFAULT nextval('source_id_seq'::regclass) NOT NULL,
-    source text NOT NULL,
-    version debversion NOT NULL,
-    maintainer integer NOT NULL,
-    file integer NOT NULL,
-    sig_fpr integer,
-    install_date timestamp with time zone NOT NULL,
-    changedby integer NOT NULL,
-    dm_upload_allowed boolean DEFAULT false NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    stanza text
-);
-
-
-ALTER TABLE public.source OWNER TO dak;
-
---
--- Name: src_associations_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE src_associations_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.src_associations_id_seq OWNER TO dak;
-
---
--- Name: src_associations; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE src_associations (
-    id integer DEFAULT nextval('src_associations_id_seq'::regclass) NOT NULL,
-    suite integer NOT NULL,
-    source integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.src_associations OWNER TO dak;
-
---
--- Name: src_associations_bin; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW src_associations_bin AS
-    SELECT src_associations.id, src_associations.source, src_associations.suite, binaries.id AS bin, binaries.architecture FROM ((src_associations JOIN source ON ((src_associations.source = source.id))) JOIN binaries ON ((source.id = binaries.source)));
-
-
-ALTER TABLE public.src_associations_bin OWNER TO dak;
-
---
--- Name: almost_obsolete_all_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW almost_obsolete_all_associations AS
-    SELECT bin_associations_binaries.id, bin_associations_binaries.bin, bin_associations_binaries.package, bin_associations_binaries.version, bin_associations_binaries.suite FROM (bin_associations_binaries LEFT JOIN src_associations_bin USING (bin, suite, architecture)) WHERE ((src_associations_bin.source IS NULL) AND (bin_associations_binaries.architecture = 2));
-
-
-ALTER TABLE public.almost_obsolete_all_associations OWNER TO dak;
-
---
--- Name: any_associations_source; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW any_associations_source AS
-    SELECT bin_associations.id, bin_associations.suite, binaries.id AS bin, binaries.package, binaries.version AS binver, binaries.architecture, source.id AS src, source.source, source.version AS srcver FROM ((bin_associations JOIN binaries ON (((bin_associations.bin = binaries.id) AND (binaries.architecture <> 2)))) JOIN source ON ((binaries.source = source.id)));
-
-
-ALTER TABLE public.any_associations_source OWNER TO dak;
-
---
--- Name: src_associations_src; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW src_associations_src AS
-    SELECT src_associations.id, src_associations.suite, source.id AS src, source.source, source.version FROM (src_associations JOIN source ON ((src_associations.source = source.id)));
-
-
-ALTER TABLE public.src_associations_src OWNER TO dak;
-
---
--- Name: almost_obsolete_src_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW almost_obsolete_src_associations AS
-    SELECT src_associations_src.id, src_associations_src.src, src_associations_src.source, src_associations_src.version, src_associations_src.suite FROM (src_associations_src LEFT JOIN any_associations_source USING (src, suite)) WHERE (any_associations_source.bin IS NULL);
-
-
-ALTER TABLE public.almost_obsolete_src_associations OWNER TO dak;
-
---
--- Name: architecture_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE architecture_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.architecture_id_seq OWNER TO dak;
-
---
--- Name: architecture; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE architecture (
-    id integer DEFAULT nextval('architecture_id_seq'::regclass) NOT NULL,
-    arch_string text NOT NULL,
-    description text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.architecture OWNER TO dak;
-
---
--- Name: archive_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE archive_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.archive_id_seq OWNER TO dak;
-
---
--- Name: archive; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE archive (
-    id integer DEFAULT nextval('archive_id_seq'::regclass) NOT NULL,
-    name text NOT NULL,
-    origin_server text,
-    description text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    primary_mirror text
-);
-
-
-ALTER TABLE public.archive OWNER TO dak;
-
---
--- Name: bin_contents; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE bin_contents (
-    file text NOT NULL,
-    binary_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.bin_contents OWNER TO dak;
-
---
--- Name: binaries_metadata; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE binaries_metadata (
-    bin_id integer NOT NULL,
-    key_id integer NOT NULL,
-    value text NOT NULL
-);
-
-
-ALTER TABLE public.binaries_metadata OWNER TO dak;
-
---
--- Name: suite_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE suite_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.suite_id_seq OWNER TO dak;
-
---
--- Name: suite; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE suite (
-    id integer DEFAULT nextval('suite_id_seq'::regclass) NOT NULL,
-    suite_name text NOT NULL,
-    version text,
-    origin text,
-    label text,
-    description text,
-    untouchable boolean DEFAULT false NOT NULL,
-    announce text DEFAULT 'debian-devel-changes@lists.debian.org'::text NOT NULL,
-    codename text,
-    overridecodename text,
-    validtime integer DEFAULT 604800 NOT NULL,
-    priority integer DEFAULT 0 NOT NULL,
-    notautomatic boolean DEFAULT false NOT NULL,
-    copychanges text,
-    overridesuite text,
-    policy_queue_id integer,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    changelog text,
-    butautomaticupgrades boolean DEFAULT false NOT NULL,
-    signingkeys text[],
-    CONSTRAINT bau_needs_na_set CHECK (((NOT butautomaticupgrades) OR notautomatic))
-);
-
-
-ALTER TABLE public.suite OWNER TO dak;
-
---
--- Name: binaries_suite_arch; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW binaries_suite_arch AS
-    SELECT bin_associations.id, binaries.id AS bin, binaries.package, binaries.version, binaries.source, bin_associations.suite, suite.suite_name, binaries.architecture, architecture.arch_string FROM (((binaries JOIN bin_associations ON ((binaries.id = bin_associations.bin))) JOIN suite ON ((suite.id = bin_associations.suite))) JOIN architecture ON ((binaries.architecture = architecture.id)));
-
-
-ALTER TABLE public.binaries_suite_arch OWNER TO dak;
-
---
--- Name: binary_acl; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE binary_acl (
-    id integer NOT NULL,
-    access_level text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.binary_acl OWNER TO dak;
-
---
--- Name: binary_acl_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE binary_acl_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.binary_acl_id_seq OWNER TO dak;
-
---
--- Name: binary_acl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE binary_acl_id_seq OWNED BY binary_acl.id;
-
-
---
--- Name: binary_acl_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE binary_acl_map (
-    id integer NOT NULL,
-    fingerprint_id integer NOT NULL,
-    architecture_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.binary_acl_map OWNER TO dak;
-
---
--- Name: binary_acl_map_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE binary_acl_map_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.binary_acl_map_id_seq OWNER TO dak;
-
---
--- Name: binary_acl_map_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE binary_acl_map_id_seq OWNED BY binary_acl_map.id;
-
-
---
--- Name: files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE files_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.files_id_seq OWNER TO dak;
-
---
--- Name: files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE files (
-    id integer DEFAULT nextval('files_id_seq'::regclass) NOT NULL,
-    filename text NOT NULL,
-    size bigint NOT NULL,
-    md5sum text NOT NULL,
-    location integer NOT NULL,
-    last_used timestamp with time zone,
-    sha1sum text,
-    sha256sum text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.files OWNER TO dak;
-
---
--- Name: location_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE location_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.location_id_seq OWNER TO dak;
-
---
--- Name: location; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE location (
-    id integer DEFAULT nextval('location_id_seq'::regclass) NOT NULL,
-    path text NOT NULL,
-    component integer,
-    archive integer,
-    type text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.location OWNER TO dak;
-
---
--- Name: binfiles_suite_component_arch; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW binfiles_suite_component_arch AS
-    SELECT files.filename, binaries.type, location.path, location.component, bin_associations.suite, binaries.architecture FROM (((binaries JOIN bin_associations ON ((binaries.id = bin_associations.bin))) JOIN files ON ((binaries.file = files.id))) JOIN location ON ((files.location = location.id)));
-
-
-ALTER TABLE public.binfiles_suite_component_arch OWNER TO dak;
-
---
--- Name: build_queue; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE build_queue (
-    id integer NOT NULL,
-    queue_name text NOT NULL,
-    path text NOT NULL,
-    copy_files boolean DEFAULT false NOT NULL,
-    generate_metadata boolean DEFAULT false NOT NULL,
-    origin text,
-    label text,
-    releasedescription text,
-    signingkey text,
-    stay_of_execution integer DEFAULT 86400 NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    notautomatic boolean DEFAULT false NOT NULL,
-    CONSTRAINT build_queue_meta_sanity_check CHECK (((generate_metadata IS FALSE) OR (((origin IS NOT NULL) AND (label IS NOT NULL)) AND (releasedescription IS NOT NULL)))),
-    CONSTRAINT build_queue_stay_of_execution_check CHECK ((stay_of_execution >= 0))
-);
-
-
-ALTER TABLE public.build_queue OWNER TO dak;
-
---
--- Name: build_queue_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE build_queue_files (
-    id integer NOT NULL,
-    build_queue_id integer NOT NULL,
-    insertdate timestamp without time zone DEFAULT now() NOT NULL,
-    lastused timestamp without time zone,
-    filename text NOT NULL,
-    fileid integer,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.build_queue_files OWNER TO dak;
-
---
--- Name: build_queue_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE build_queue_files_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.build_queue_files_id_seq OWNER TO dak;
-
---
--- Name: build_queue_files_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE build_queue_files_id_seq OWNED BY build_queue_files.id;
-
-
---
--- Name: build_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE build_queue_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.build_queue_id_seq OWNER TO dak;
-
---
--- Name: build_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE build_queue_id_seq OWNED BY build_queue.id;
-
-
---
--- Name: build_queue_policy_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE build_queue_policy_files (
-    build_queue_id integer NOT NULL,
-    file_id integer NOT NULL,
-    filename text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    lastused timestamp without time zone
-);
-
-
-ALTER TABLE public.build_queue_policy_files OWNER TO dak;
-
---
--- Name: changelogs_text; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changelogs_text (
-    id integer NOT NULL,
-    changelog text
-);
-
-
-ALTER TABLE public.changelogs_text OWNER TO dak;
-
---
--- Name: changes; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes (
-    id integer NOT NULL,
-    changesname text NOT NULL,
-    seen timestamp with time zone DEFAULT now() NOT NULL,
-    source text NOT NULL,
-    binaries text NOT NULL,
-    architecture text NOT NULL,
-    version text NOT NULL,
-    distribution text NOT NULL,
-    urgency text NOT NULL,
-    maintainer text NOT NULL,
-    fingerprint text NOT NULL,
-    changedby text NOT NULL,
-    date text NOT NULL,
-    in_queue integer,
-    approved_for integer,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    changelog_id integer
-);
-
-
-ALTER TABLE public.changes OWNER TO dak;
-
---
--- Name: changelogs; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW changelogs AS
-    SELECT cl.id, c.source, (c.version)::debversion AS version, c.architecture, cl.changelog, c.distribution FROM (changes c JOIN changelogs_text cl ON ((cl.id = c.changelog_id)));
-
-
-ALTER TABLE public.changelogs OWNER TO dak;
-
---
--- Name: changelogs_text_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE changelogs_text_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.changelogs_text_id_seq OWNER TO dak;
-
---
--- Name: changelogs_text_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE changelogs_text_id_seq OWNED BY changelogs_text.id;
-
-
---
--- Name: changes_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE changes_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.changes_id_seq OWNER TO dak;
-
---
--- Name: changes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE changes_id_seq OWNED BY changes.id;
-
-
---
--- Name: changes_pending_binaries; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pending_binaries (
-    id integer NOT NULL,
-    change_id integer NOT NULL,
-    package text NOT NULL,
-    version debversion NOT NULL,
-    architecture_id integer NOT NULL,
-    source_id integer,
-    pending_source_id integer,
-    pending_file_id integer,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    CONSTRAINT changes_pending_binaries_check CHECK (((source_id IS NOT NULL) OR (pending_source_id IS NOT NULL)))
-);
-
-
-ALTER TABLE public.changes_pending_binaries OWNER TO dak;
-
---
--- Name: changes_pending_binaries_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE changes_pending_binaries_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.changes_pending_binaries_id_seq OWNER TO dak;
-
---
--- Name: changes_pending_binaries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE changes_pending_binaries_id_seq OWNED BY changes_pending_binaries.id;
-
-
---
--- Name: changes_pending_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pending_files (
-    id integer NOT NULL,
-    filename text NOT NULL,
-    size bigint NOT NULL,
-    md5sum text NOT NULL,
-    sha1sum text NOT NULL,
-    sha256sum text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    processed boolean DEFAULT false
-);
-
-
-ALTER TABLE public.changes_pending_files OWNER TO dak;
-
---
--- Name: changes_pending_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE changes_pending_files_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.changes_pending_files_id_seq OWNER TO dak;
-
---
--- Name: changes_pending_files_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE changes_pending_files_id_seq OWNED BY changes_pending_files.id;
-
-
---
--- Name: changes_pending_files_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pending_files_map (
-    file_id integer NOT NULL,
-    change_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.changes_pending_files_map OWNER TO dak;
-
---
--- Name: changes_pending_source; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pending_source (
-    id integer NOT NULL,
-    change_id integer NOT NULL,
-    source text NOT NULL,
-    version debversion NOT NULL,
-    maintainer_id integer NOT NULL,
-    changedby_id integer NOT NULL,
-    sig_fpr integer NOT NULL,
-    dm_upload_allowed boolean DEFAULT false NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.changes_pending_source OWNER TO dak;
-
---
--- Name: changes_pending_source_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pending_source_files (
-    pending_source_id integer NOT NULL,
-    pending_file_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.changes_pending_source_files OWNER TO dak;
-
---
--- Name: changes_pending_source_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE changes_pending_source_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.changes_pending_source_id_seq OWNER TO dak;
-
---
--- Name: changes_pending_source_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE changes_pending_source_id_seq OWNED BY changes_pending_source.id;
-
-
---
--- Name: changes_pool_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE changes_pool_files (
-    changeid integer NOT NULL,
-    fileid integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.changes_pool_files OWNER TO dak;
-
---
--- Name: component_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE component_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.component_id_seq OWNER TO dak;
-
---
--- Name: component; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE component (
-    id integer DEFAULT nextval('component_id_seq'::regclass) NOT NULL,
-    name text NOT NULL,
-    description text,
-    meets_dfsg boolean,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.component OWNER TO dak;
-
---
--- Name: config; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE config (
-    id integer NOT NULL,
-    name text NOT NULL,
-    value text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.config OWNER TO dak;
-
---
--- Name: config_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE config_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.config_id_seq OWNER TO dak;
-
---
--- Name: config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE config_id_seq OWNED BY config.id;
-
-
---
--- Name: dsc_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE dsc_files_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.dsc_files_id_seq OWNER TO dak;
-
---
--- Name: dsc_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE dsc_files (
-    id integer DEFAULT nextval('dsc_files_id_seq'::regclass) NOT NULL,
-    source integer NOT NULL,
-    file integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.dsc_files OWNER TO dak;
-
---
--- Name: external_overrides; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE external_overrides (
-    package text NOT NULL,
-    key text NOT NULL,
-    value text NOT NULL,
-    suite integer NOT NULL,
-    component integer NOT NULL
-);
-
-
-ALTER TABLE public.external_overrides OWNER TO dak;
-
---
--- Name: extra_src_references; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE extra_src_references (
-    bin_id integer NOT NULL,
-    src_id integer NOT NULL
-);
-
-
-ALTER TABLE public.extra_src_references OWNER TO dak;
-
---
--- Name: file_arch_suite; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW file_arch_suite AS
-    SELECT f.id AS file, f.size, b.architecture, s.id AS suite FROM files f, binaries b, bin_associations ba, suite s WHERE (((f.id = b.file) AND (b.id = ba.bin)) AND (ba.suite = s.id));
-
-
-ALTER TABLE public.file_arch_suite OWNER TO dak;
-
---
--- Name: fingerprint_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE fingerprint_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.fingerprint_id_seq OWNER TO dak;
-
---
--- Name: fingerprint; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE fingerprint (
-    id integer DEFAULT nextval('fingerprint_id_seq'::regclass) NOT NULL,
-    fingerprint text NOT NULL,
-    uid integer,
-    keyring integer,
-    source_acl_id integer,
-    binary_acl_id integer,
-    binary_reject boolean DEFAULT true NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.fingerprint OWNER TO dak;
-
---
--- Name: keyring_acl_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE keyring_acl_map (
-    id integer NOT NULL,
-    keyring_id integer NOT NULL,
-    architecture_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.keyring_acl_map OWNER TO dak;
-
---
--- Name: keyring_acl_map_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE keyring_acl_map_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.keyring_acl_map_id_seq OWNER TO dak;
-
---
--- Name: keyring_acl_map_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE keyring_acl_map_id_seq OWNED BY keyring_acl_map.id;
-
-
---
--- Name: keyrings; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE keyrings (
-    id integer NOT NULL,
-    name text NOT NULL,
-    default_source_acl_id integer,
-    default_binary_acl_id integer,
-    default_binary_reject boolean DEFAULT true NOT NULL,
-    priority integer DEFAULT 100 NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    active boolean DEFAULT true
-);
-
-
-ALTER TABLE public.keyrings OWNER TO dak;
-
---
--- Name: keyrings_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE keyrings_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.keyrings_id_seq OWNER TO dak;
-
---
--- Name: keyrings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE keyrings_id_seq OWNED BY keyrings.id;
-
-
---
--- Name: maintainer_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE maintainer_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.maintainer_id_seq OWNER TO dak;
-
---
--- Name: maintainer; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE maintainer (
-    id integer DEFAULT nextval('maintainer_id_seq'::regclass) NOT NULL,
-    name text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.maintainer OWNER TO dak;
-
---
--- Name: metadata_keys; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE metadata_keys (
-    key_id integer NOT NULL,
-    key text NOT NULL,
-    ordering integer DEFAULT 0 NOT NULL
-);
-
-
-ALTER TABLE public.metadata_keys OWNER TO dak;
-
---
--- Name: metadata_keys_key_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE metadata_keys_key_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.metadata_keys_key_id_seq OWNER TO dak;
-
---
--- Name: metadata_keys_key_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE metadata_keys_key_id_seq OWNED BY metadata_keys.key_id;
-
-
---
--- Name: new_comments; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE new_comments (
-    id integer NOT NULL,
-    package text NOT NULL,
-    version text NOT NULL,
-    comment text NOT NULL,
-    author text NOT NULL,
-    notedate timestamp with time zone DEFAULT now() NOT NULL,
-    trainee boolean DEFAULT false NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.new_comments OWNER TO dak;
-
---
--- Name: new_comments_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE new_comments_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.new_comments_id_seq OWNER TO dak;
-
---
--- Name: new_comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE new_comments_id_seq OWNED BY new_comments.id;
-
-
---
--- Name: newest_all_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW newest_all_associations AS
-    SELECT binaries_suite_arch.package, max(binaries_suite_arch.version) AS version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM binaries_suite_arch WHERE (binaries_suite_arch.architecture = 2) GROUP BY binaries_suite_arch.package, binaries_suite_arch.suite, binaries_suite_arch.architecture;
-
-
-ALTER TABLE public.newest_all_associations OWNER TO dak;
-
---
--- Name: newest_any_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW newest_any_associations AS
-    SELECT binaries_suite_arch.package, max(binaries_suite_arch.version) AS version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM binaries_suite_arch WHERE (binaries_suite_arch.architecture > 2) GROUP BY binaries_suite_arch.package, binaries_suite_arch.suite, binaries_suite_arch.architecture;
-
-
-ALTER TABLE public.newest_any_associations OWNER TO dak;
-
---
--- Name: source_suite; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW source_suite AS
-    SELECT src_associations.id, source.id AS src, source.source, source.version, src_associations.suite, suite.suite_name, source.install_date FROM ((source JOIN src_associations ON ((source.id = src_associations.source))) JOIN suite ON ((suite.id = src_associations.suite)));
-
-
-ALTER TABLE public.source_suite OWNER TO dak;
-
---
--- Name: newest_source; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW newest_source AS
-    SELECT source_suite.source, max(source_suite.version) AS version, source_suite.suite FROM source_suite GROUP BY source_suite.source, source_suite.suite;
-
-
-ALTER TABLE public.newest_source OWNER TO dak;
-
---
--- Name: newest_src_association; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW newest_src_association AS
-    SELECT source_suite.id, source_suite.src, source_suite.source, source_suite.version, source_suite.suite FROM (source_suite JOIN newest_source USING (source, version, suite));
-
-
-ALTER TABLE public.newest_src_association OWNER TO dak;
-
---
--- Name: obsolete_all_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW obsolete_all_associations AS
-    SELECT almost.id, almost.bin, almost.package, almost.version, almost.suite FROM (almost_obsolete_all_associations almost JOIN newest_all_associations newest ON ((((almost.package = newest.package) AND (almost.version < newest.version)) AND (almost.suite = newest.suite))));
-
-
-ALTER TABLE public.obsolete_all_associations OWNER TO dak;
-
---
--- Name: obsolete_any_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW obsolete_any_associations AS
-    SELECT binaries_suite_arch.id, binaries_suite_arch.architecture, binaries_suite_arch.version, binaries_suite_arch.package, binaries_suite_arch.suite FROM (binaries_suite_arch JOIN newest_any_associations ON (((((binaries_suite_arch.architecture = newest_any_associations.architecture) AND (binaries_suite_arch.package = newest_any_associations.package)) AND (binaries_suite_arch.suite = newest_any_associations.suite)) AND (binaries_suite_arch.version <> newest_any_associations.version))));
-
-
-ALTER TABLE public.obsolete_any_associations OWNER TO dak;
-
---
--- Name: obsolete_any_by_all_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW obsolete_any_by_all_associations AS
-    SELECT binaries_suite_arch.id, binaries_suite_arch.package, binaries_suite_arch.version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM (binaries_suite_arch JOIN newest_all_associations ON (((((binaries_suite_arch.package = newest_all_associations.package) AND (binaries_suite_arch.version < newest_all_associations.version)) AND (binaries_suite_arch.suite = newest_all_associations.suite)) AND (binaries_suite_arch.architecture > 2))));
-
-
-ALTER TABLE public.obsolete_any_by_all_associations OWNER TO dak;
-
---
--- Name: obsolete_src_associations; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW obsolete_src_associations AS
-    SELECT almost.id, almost.src, almost.source, almost.version, almost.suite FROM (almost_obsolete_src_associations almost JOIN newest_src_association newest ON ((((almost.source = newest.source) AND (almost.version < newest.version)) AND (almost.suite = newest.suite))));
-
-
-ALTER TABLE public.obsolete_src_associations OWNER TO dak;
-
---
--- Name: override; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE override (
-    package text NOT NULL,
-    suite integer NOT NULL,
-    component integer NOT NULL,
-    priority integer,
-    section integer NOT NULL,
-    type integer NOT NULL,
-    maintainer text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.override OWNER TO dak;
-
---
--- Name: override_type_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE override_type_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.override_type_id_seq OWNER TO dak;
-
---
--- Name: override_type; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE override_type (
-    id integer DEFAULT nextval('override_type_id_seq'::regclass) NOT NULL,
-    type text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.override_type OWNER TO dak;
-
---
--- Name: policy_queue; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE policy_queue (
-    id integer NOT NULL,
-    queue_name text NOT NULL,
-    path text NOT NULL,
-    perms character(4) DEFAULT '0660'::bpchar NOT NULL,
-    change_perms character(4) DEFAULT '0660'::bpchar NOT NULL,
-    generate_metadata boolean DEFAULT false NOT NULL,
-    origin text,
-    label text,
-    releasedescription text,
-    signingkey text,
-    stay_of_execution integer DEFAULT 86400 NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    send_to_build_queues boolean DEFAULT false NOT NULL,
-    CONSTRAINT policy_queue_change_perms_check CHECK ((change_perms ~ similar_escape('[0-7][0-7][0-7][0-7]'::text, NULL::text))),
-    CONSTRAINT policy_queue_meta_sanity_check CHECK (((generate_metadata IS FALSE) OR (((origin IS NOT NULL) AND (label IS NOT NULL)) AND (releasedescription IS NOT NULL)))),
-    CONSTRAINT policy_queue_perms_check CHECK ((perms ~ similar_escape('[0-7][0-7][0-7][0-7]'::text, NULL::text))),
-    CONSTRAINT policy_queue_stay_of_execution_check CHECK ((stay_of_execution >= 0))
-);
-
-
-ALTER TABLE public.policy_queue OWNER TO dak;
-
---
--- Name: policy_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE policy_queue_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.policy_queue_id_seq OWNER TO dak;
-
---
--- Name: policy_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE policy_queue_id_seq OWNED BY policy_queue.id;
-
-
---
--- Name: priority_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE priority_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.priority_id_seq OWNER TO dak;
-
---
--- Name: priority; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE priority (
-    id integer DEFAULT nextval('priority_id_seq'::regclass) NOT NULL,
-    priority text NOT NULL,
-    level integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.priority OWNER TO dak;
-
---
--- Name: section_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE section_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    MAXVALUE 2147483647
-    CACHE 1;
-
-
-ALTER TABLE public.section_id_seq OWNER TO dak;
-
---
--- Name: section; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE section (
-    id integer DEFAULT nextval('section_id_seq'::regclass) NOT NULL,
-    section text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.section OWNER TO dak;
-
---
--- Name: source_acl; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE source_acl (
-    id integer NOT NULL,
-    access_level text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.source_acl OWNER TO dak;
-
---
--- Name: source_acl_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE source_acl_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.source_acl_id_seq OWNER TO dak;
-
---
--- Name: source_acl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE source_acl_id_seq OWNED BY source_acl.id;
-
-
---
--- Name: source_metadata; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE source_metadata (
-    src_id integer NOT NULL,
-    key_id integer NOT NULL,
-    value text NOT NULL
-);
-
-
-ALTER TABLE public.source_metadata OWNER TO dak;
-
---
--- Name: src_contents; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE src_contents (
-    file text NOT NULL,
-    source_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.src_contents OWNER TO dak;
-
---
--- Name: src_format; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE src_format (
-    id integer NOT NULL,
-    format_name text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.src_format OWNER TO dak;
-
---
--- Name: src_format_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE src_format_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.src_format_id_seq OWNER TO dak;
-
---
--- Name: src_format_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE src_format_id_seq OWNED BY src_format.id;
-
-
---
--- Name: src_uploaders; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE src_uploaders (
-    id integer NOT NULL,
-    source integer NOT NULL,
-    maintainer integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.src_uploaders OWNER TO dak;
-
---
--- Name: src_uploaders_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE src_uploaders_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.src_uploaders_id_seq OWNER TO dak;
-
---
--- Name: src_uploaders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE src_uploaders_id_seq OWNED BY src_uploaders.id;
-
-
---
--- Name: suite_architectures; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE suite_architectures (
-    suite integer NOT NULL,
-    architecture integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.suite_architectures OWNER TO dak;
-
---
--- Name: suite_arch_by_name; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW suite_arch_by_name AS
-    SELECT suite.suite_name AS suite, a.arch_string AS arch FROM ((suite_architectures sa JOIN architecture a ON ((sa.architecture = a.id))) JOIN suite ON ((sa.suite = suite.id))) WHERE (a.arch_string <> ALL (ARRAY['all'::text, 'source'::text]));
-
-
-ALTER TABLE public.suite_arch_by_name OWNER TO dak;
-
---
--- Name: suite_build_queue_copy; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE suite_build_queue_copy (
-    suite integer NOT NULL,
-    build_queue_id integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.suite_build_queue_copy OWNER TO dak;
-
---
--- Name: suite_src_formats; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE suite_src_formats (
-    suite integer NOT NULL,
-    src_format integer NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.suite_src_formats OWNER TO dak;
-
---
--- Name: uid_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE uid_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.uid_id_seq OWNER TO dak;
-
---
--- Name: uid; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE uid (
-    id integer DEFAULT nextval('uid_id_seq'::regclass) NOT NULL,
-    uid text NOT NULL,
-    name text,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL
-);
-
-
-ALTER TABLE public.uid OWNER TO dak;
-
---
--- Name: upload_blocks; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE upload_blocks (
-    id integer NOT NULL,
-    source text NOT NULL,
-    version debversion,
-    fingerprint_id integer,
-    uid_id integer,
-    reason text NOT NULL,
-    created timestamp with time zone DEFAULT now() NOT NULL,
-    modified timestamp with time zone DEFAULT now() NOT NULL,
-    CONSTRAINT upload_blocks_check CHECK (((fingerprint_id IS NOT NULL) OR (uid_id IS NOT NULL)))
-);
-
-
-ALTER TABLE public.upload_blocks OWNER TO dak;
-
---
--- Name: upload_blocks_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
---
-
-CREATE SEQUENCE upload_blocks_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.upload_blocks_id_seq OWNER TO dak;
-
---
--- Name: upload_blocks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
---
-
-ALTER SEQUENCE upload_blocks_id_seq OWNED BY upload_blocks.id;
-
-
---
--- Name: version_check; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE TABLE version_check (
-    suite integer NOT NULL,
-    "check" text NOT NULL,
-    reference integer NOT NULL,
-    CONSTRAINT version_check_check_check CHECK (("check" = ANY (ARRAY['Enhances'::text, 'MustBeNewerThan'::text, 'MustBeOlderThan'::text])))
-);
-
-
-ALTER TABLE public.version_check OWNER TO dak;
-
---
--- Name: version_checks; Type: VIEW; Schema: public; Owner: dak
---
-
-CREATE VIEW version_checks AS
-    SELECT s.suite_name AS source_suite, v."check" AS condition, t.suite_name AS target_suite FROM ((suite s JOIN version_check v ON ((s.id = v.suite))) JOIN suite t ON ((v.reference = t.id))) ORDER BY s.suite_name, v."check", t.suite_name;
-
-
-ALTER TABLE public.version_checks OWNER TO dak;
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE binary_acl ALTER COLUMN id SET DEFAULT nextval('binary_acl_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE binary_acl_map ALTER COLUMN id SET DEFAULT nextval('binary_acl_map_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE build_queue ALTER COLUMN id SET DEFAULT nextval('build_queue_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE build_queue_files ALTER COLUMN id SET DEFAULT nextval('build_queue_files_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE changelogs_text ALTER COLUMN id SET DEFAULT nextval('changelogs_text_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE changes ALTER COLUMN id SET DEFAULT nextval('changes_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE changes_pending_binaries ALTER COLUMN id SET DEFAULT nextval('changes_pending_binaries_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE changes_pending_files ALTER COLUMN id SET DEFAULT nextval('changes_pending_files_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE changes_pending_source ALTER COLUMN id SET DEFAULT nextval('changes_pending_source_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE config ALTER COLUMN id SET DEFAULT nextval('config_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE keyring_acl_map ALTER COLUMN id SET DEFAULT nextval('keyring_acl_map_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE keyrings ALTER COLUMN id SET DEFAULT nextval('keyrings_id_seq'::regclass);
-
-
---
--- Name: key_id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE metadata_keys ALTER COLUMN key_id SET DEFAULT nextval('metadata_keys_key_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE new_comments ALTER COLUMN id SET DEFAULT nextval('new_comments_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE policy_queue ALTER COLUMN id SET DEFAULT nextval('policy_queue_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE source_acl ALTER COLUMN id SET DEFAULT nextval('source_acl_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE src_format ALTER COLUMN id SET DEFAULT nextval('src_format_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE src_uploaders ALTER COLUMN id SET DEFAULT nextval('src_uploaders_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: dak
---
-
-ALTER TABLE upload_blocks ALTER COLUMN id SET DEFAULT nextval('upload_blocks_id_seq'::regclass);
-
-
---
--- Name: architecture_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY architecture
-    ADD CONSTRAINT architecture_pkey PRIMARY KEY (id);
-
-
---
--- Name: archive_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY archive
-    ADD CONSTRAINT archive_pkey PRIMARY KEY (id);
-
-
---
--- Name: bin_associations_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY bin_associations
-    ADD CONSTRAINT bin_associations_pkey PRIMARY KEY (id);
-
-
---
--- Name: bin_contents_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY bin_contents
-    ADD CONSTRAINT bin_contents_pkey PRIMARY KEY (file, binary_id);
-
-
---
--- Name: binaries_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binaries_metadata
-    ADD CONSTRAINT binaries_metadata_pkey PRIMARY KEY (bin_id, key_id);
-
-
---
--- Name: binaries_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_pkey PRIMARY KEY (id);
-
-
---
--- Name: binary_acl_access_level_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binary_acl
-    ADD CONSTRAINT binary_acl_access_level_key UNIQUE (access_level);
-
-
---
--- Name: binary_acl_map_fingerprint_id_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binary_acl_map
-    ADD CONSTRAINT binary_acl_map_fingerprint_id_key UNIQUE (fingerprint_id, architecture_id);
-
-
---
--- Name: binary_acl_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binary_acl_map
-    ADD CONSTRAINT binary_acl_map_pkey PRIMARY KEY (id);
-
-
---
--- Name: binary_acl_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY binary_acl
-    ADD CONSTRAINT binary_acl_pkey PRIMARY KEY (id);
-
-
---
--- Name: build_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY build_queue
-    ADD CONSTRAINT build_queue_pkey PRIMARY KEY (id);
-
-
---
--- Name: build_queue_policy_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY build_queue_policy_files
-    ADD CONSTRAINT build_queue_policy_files_pkey PRIMARY KEY (build_queue_id, file_id);
-
-
---
--- Name: build_queue_queue_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY build_queue
-    ADD CONSTRAINT build_queue_queue_name_key UNIQUE (queue_name);
-
-
---
--- Name: changelogs_text_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changelogs_text
-    ADD CONSTRAINT changelogs_text_pkey PRIMARY KEY (id);
-
-
---
--- Name: changes_pending_binaries_package_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_package_key UNIQUE (package, version, architecture_id);
-
-
---
--- Name: changes_pending_binaries_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_pkey PRIMARY KEY (id);
-
-
---
--- Name: changes_pending_files_filename_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_files
-    ADD CONSTRAINT changes_pending_files_filename_key UNIQUE (filename);
-
-
---
--- Name: changes_pending_files_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_files_map
-    ADD CONSTRAINT changes_pending_files_map_pkey PRIMARY KEY (file_id, change_id);
-
-
---
--- Name: changes_pending_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_files
-    ADD CONSTRAINT changes_pending_files_pkey PRIMARY KEY (id);
-
-
---
--- Name: changes_pending_source_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_source_files
-    ADD CONSTRAINT changes_pending_source_files_pkey PRIMARY KEY (pending_source_id, pending_file_id);
-
-
---
--- Name: changes_pending_source_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pending_source
-    ADD CONSTRAINT changes_pending_source_pkey PRIMARY KEY (id);
-
-
---
--- Name: changes_pool_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes_pool_files
-    ADD CONSTRAINT changes_pool_files_pkey PRIMARY KEY (changeid, fileid);
-
-
---
--- Name: component_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY component
-    ADD CONSTRAINT component_pkey PRIMARY KEY (id);
-
-
---
--- Name: config_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY config
-    ADD CONSTRAINT config_name_key UNIQUE (name);
-
-
---
--- Name: config_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY config
-    ADD CONSTRAINT config_pkey PRIMARY KEY (id);
-
-
---
--- Name: dsc_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY dsc_files
-    ADD CONSTRAINT dsc_files_pkey PRIMARY KEY (id);
-
-
---
--- Name: external_overrides_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY external_overrides
-    ADD CONSTRAINT external_overrides_pkey PRIMARY KEY (suite, component, package, key);
-
-
---
--- Name: extra_src_references_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY extra_src_references
-    ADD CONSTRAINT extra_src_references_pkey PRIMARY KEY (bin_id, src_id);
-
-
---
--- Name: files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY files
-    ADD CONSTRAINT files_pkey PRIMARY KEY (id);
-
-
---
--- Name: fingerprint_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY fingerprint
-    ADD CONSTRAINT fingerprint_pkey PRIMARY KEY (id);
-
-
---
--- Name: keyring_acl_map_keyring_id_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY keyring_acl_map
-    ADD CONSTRAINT keyring_acl_map_keyring_id_key UNIQUE (keyring_id, architecture_id);
-
-
---
--- Name: keyring_acl_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY keyring_acl_map
-    ADD CONSTRAINT keyring_acl_map_pkey PRIMARY KEY (id);
-
-
---
--- Name: keyrings_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY keyrings
-    ADD CONSTRAINT keyrings_name_key UNIQUE (name);
-
-
---
--- Name: keyrings_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY keyrings
-    ADD CONSTRAINT keyrings_pkey PRIMARY KEY (id);
-
-
---
--- Name: known_changes_changesname_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes
-    ADD CONSTRAINT known_changes_changesname_key UNIQUE (changesname);
-
-
---
--- Name: known_changes_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY changes
-    ADD CONSTRAINT known_changes_pkey PRIMARY KEY (id);
-
-
---
--- Name: location_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY location
-    ADD CONSTRAINT location_pkey PRIMARY KEY (id);
-
-
---
--- Name: maintainer_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY maintainer
-    ADD CONSTRAINT maintainer_pkey PRIMARY KEY (id);
-
-
---
--- Name: metadata_keys_key_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY metadata_keys
-    ADD CONSTRAINT metadata_keys_key_key UNIQUE (key);
-
-
---
--- Name: metadata_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY metadata_keys
-    ADD CONSTRAINT metadata_keys_pkey PRIMARY KEY (key_id);
-
-
---
--- Name: new_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY new_comments
-    ADD CONSTRAINT new_comments_pkey PRIMARY KEY (id);
-
-
---
--- Name: override_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_pkey PRIMARY KEY (suite, component, package, type);
-
-
---
--- Name: override_type_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY override_type
-    ADD CONSTRAINT override_type_pkey PRIMARY KEY (id);
-
-
---
--- Name: policy_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY policy_queue
-    ADD CONSTRAINT policy_queue_pkey PRIMARY KEY (id);
-
-
---
--- Name: policy_queue_queue_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY policy_queue
-    ADD CONSTRAINT policy_queue_queue_name_key UNIQUE (queue_name);
-
-
---
--- Name: priority_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY priority
-    ADD CONSTRAINT priority_pkey PRIMARY KEY (id);
-
-
---
--- Name: queue_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY build_queue_files
-    ADD CONSTRAINT queue_files_pkey PRIMARY KEY (id);
-
-
---
--- Name: section_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY section
-    ADD CONSTRAINT section_pkey PRIMARY KEY (id);
-
-
---
--- Name: source_acl_access_level_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY source_acl
-    ADD CONSTRAINT source_acl_access_level_key UNIQUE (access_level);
-
-
---
--- Name: source_acl_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY source_acl
-    ADD CONSTRAINT source_acl_pkey PRIMARY KEY (id);
-
-
---
--- Name: source_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY source_metadata
-    ADD CONSTRAINT source_metadata_pkey PRIMARY KEY (src_id, key_id);
-
-
---
--- Name: source_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY source
-    ADD CONSTRAINT source_pkey PRIMARY KEY (id);
-
-
---
--- Name: src_associations_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_associations
-    ADD CONSTRAINT src_associations_pkey PRIMARY KEY (id);
-
-
---
--- Name: src_contents_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_contents
-    ADD CONSTRAINT src_contents_pkey PRIMARY KEY (file, source_id);
-
-
---
--- Name: src_format_format_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_format
-    ADD CONSTRAINT src_format_format_name_key UNIQUE (format_name);
-
-
---
--- Name: src_format_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_format
-    ADD CONSTRAINT src_format_pkey PRIMARY KEY (id);
-
-
---
--- Name: src_uploaders_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_uploaders
-    ADD CONSTRAINT src_uploaders_pkey PRIMARY KEY (id);
-
-
---
--- Name: src_uploaders_source_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY src_uploaders
-    ADD CONSTRAINT src_uploaders_source_key UNIQUE (source, maintainer);
-
-
---
--- Name: suite_architectures_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite_architectures
-    ADD CONSTRAINT suite_architectures_pkey PRIMARY KEY (suite, architecture);
-
-
---
--- Name: suite_name_unique; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite
-    ADD CONSTRAINT suite_name_unique UNIQUE (suite_name);
-
-
---
--- Name: suite_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite
-    ADD CONSTRAINT suite_pkey PRIMARY KEY (id);
-
-
---
--- Name: suite_queue_copy_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite_build_queue_copy
-    ADD CONSTRAINT suite_queue_copy_pkey PRIMARY KEY (suite, build_queue_id);
-
-
---
--- Name: suite_src_formats_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite_src_formats
-    ADD CONSTRAINT suite_src_formats_pkey PRIMARY KEY (suite, src_format);
-
-
---
--- Name: suite_src_formats_suite_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY suite_src_formats
-    ADD CONSTRAINT suite_src_formats_suite_key UNIQUE (suite, src_format);
-
-
---
--- Name: uid_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY uid
-    ADD CONSTRAINT uid_pkey PRIMARY KEY (id);
-
-
---
--- Name: upload_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY upload_blocks
-    ADD CONSTRAINT upload_blocks_pkey PRIMARY KEY (id);
-
-
---
--- Name: version_check_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
---
-
-ALTER TABLE ONLY version_check
-    ADD CONSTRAINT version_check_pkey PRIMARY KEY (suite, "check", reference);
-
-
---
--- Name: architecture_arch_string_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX architecture_arch_string_key ON architecture USING btree (arch_string);
-
-
---
--- Name: archive_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX archive_name_key ON archive USING btree (name);
-
-
---
--- Name: bin_associations_bin; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX bin_associations_bin ON bin_associations USING btree (bin);
-
-
---
--- Name: bin_associations_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX bin_associations_suite_key ON bin_associations USING btree (suite, bin);
-
-
---
--- Name: binaries_architecture_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX binaries_architecture_idx ON binaries USING btree (architecture);
-
-
---
--- Name: binaries_by_package; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX binaries_by_package ON binaries USING btree (id, package);
-
-
---
--- Name: binaries_file_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX binaries_file_key ON binaries USING btree (file);
-
-
---
--- Name: binaries_files; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX binaries_files ON binaries USING btree (file);
-
-
---
--- Name: binaries_fingerprint; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX binaries_fingerprint ON binaries USING btree (sig_fpr);
-
-
---
--- Name: binaries_id; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX binaries_id ON binaries USING btree (id);
-
-
---
--- Name: binaries_maintainer; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX binaries_maintainer ON binaries USING btree (maintainer);
-
-
---
--- Name: binaries_package_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX binaries_package_key ON binaries USING btree (package, version, architecture);
-
-
---
--- Name: changesapproved_for; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesapproved_for ON changes USING btree (approved_for);
-
-
---
--- Name: changesdistribution_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesdistribution_ind ON changes USING btree (distribution);
-
-
---
--- Name: changesin_queue; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesin_queue ON changes USING btree (in_queue);
-
-
---
--- Name: changesin_queue_approved_for; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesin_queue_approved_for ON changes USING btree (in_queue, approved_for);
-
-
---
--- Name: changesname_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesname_ind ON changes USING btree (changesname);
-
-
---
--- Name: changessource_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changessource_ind ON changes USING btree (source);
-
-
---
--- Name: changestimestamp_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changestimestamp_ind ON changes USING btree (seen);
-
-
---
--- Name: changesurgency_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX changesurgency_ind ON changes USING btree (urgency);
-
-
---
--- Name: component_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX component_name_key ON component USING btree (name);
-
-
---
--- Name: dsc_files_file; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX dsc_files_file ON dsc_files USING btree (file);
-
-
---
--- Name: dsc_files_source_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX dsc_files_source_key ON dsc_files USING btree (source, file);
-
-
---
--- Name: files_filename_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX files_filename_key ON files USING btree (filename, location);
-
-
---
--- Name: files_last_used; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX files_last_used ON files USING btree (last_used);
-
-
---
--- Name: fingerprint_fingerprint_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX fingerprint_fingerprint_key ON fingerprint USING btree (fingerprint);
-
-
---
--- Name: ind_bin_contents_binary; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX ind_bin_contents_binary ON bin_contents USING btree (binary_id);
-
-
---
--- Name: jjt; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt ON files USING btree (id);
-
-
---
--- Name: jjt2; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt2 ON files USING btree (location);
-
-
---
--- Name: jjt3; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt3 ON files USING btree (id, location);
-
-
---
--- Name: jjt4; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt4 ON binaries USING btree (source);
-
-
---
--- Name: jjt5; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt5 ON binaries USING btree (id, source);
-
-
---
--- Name: jjt_override_type_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX jjt_override_type_idx ON override USING btree (type);
-
-
---
--- Name: maintainer_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX maintainer_name_key ON maintainer USING btree (name);
-
-
---
--- Name: override_by_package; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX override_by_package ON override USING btree (package);
-
-
---
--- Name: override_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX override_suite_key ON override USING btree (suite, component, package, type);
-
-
---
--- Name: override_type_type_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX override_type_type_key ON override_type USING btree (type);
-
-
---
--- Name: priority_level_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX priority_level_key ON priority USING btree (level);
-
-
---
--- Name: priority_priority_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX priority_priority_key ON priority USING btree (priority);
-
-
---
--- Name: section_section_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX section_section_key ON section USING btree (section);
-
-
---
--- Name: source_file_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX source_file_key ON source USING btree (file);
-
-
---
--- Name: source_fingerprint; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX source_fingerprint ON source USING btree (sig_fpr);
-
-
---
--- Name: source_maintainer; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX source_maintainer ON source USING btree (maintainer);
-
-
---
--- Name: source_source_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX source_source_key ON source USING btree (source, version);
-
-
---
--- Name: src_associations_source; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX src_associations_source ON src_associations USING btree (source);
-
-
---
--- Name: src_associations_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX src_associations_suite_key ON src_associations USING btree (suite, source);
-
-
---
--- Name: src_contents_source_id_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX src_contents_source_id_idx ON src_contents USING btree (source_id);
-
-
---
--- Name: suite_architectures_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX suite_architectures_suite_key ON suite_architectures USING btree (suite, architecture);
-
-
---
--- Name: suite_hash; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE INDEX suite_hash ON suite USING hash (suite_name);
-
-
---
--- Name: uid_uid_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
---
-
-CREATE UNIQUE INDEX uid_uid_key ON uid USING btree (uid);
-
-
---
--- Name: modified_architecture; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_architecture BEFORE UPDATE ON architecture FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_archive; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_archive BEFORE UPDATE ON archive FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_bin_associations; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_bin_associations BEFORE UPDATE ON bin_associations FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_bin_contents; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_bin_contents BEFORE UPDATE ON bin_contents FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_binaries; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_binaries BEFORE UPDATE ON binaries FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_binary_acl; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_binary_acl BEFORE UPDATE ON binary_acl FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_binary_acl_map; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_binary_acl_map BEFORE UPDATE ON binary_acl_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_build_queue; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_build_queue BEFORE UPDATE ON build_queue FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_build_queue_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_build_queue_files BEFORE UPDATE ON build_queue_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes BEFORE UPDATE ON changes FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pending_binaries; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pending_binaries BEFORE UPDATE ON changes_pending_binaries FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pending_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pending_files BEFORE UPDATE ON changes_pending_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pending_files_map; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pending_files_map BEFORE UPDATE ON changes_pending_files_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pending_source; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pending_source BEFORE UPDATE ON changes_pending_source FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pending_source_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pending_source_files BEFORE UPDATE ON changes_pending_source_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_changes_pool_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_changes_pool_files BEFORE UPDATE ON changes_pool_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_component; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_component BEFORE UPDATE ON component FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_config; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_config BEFORE UPDATE ON config FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_dsc_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_dsc_files BEFORE UPDATE ON dsc_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_files; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_files BEFORE UPDATE ON files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_fingerprint; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_fingerprint BEFORE UPDATE ON fingerprint FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_keyring_acl_map; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_keyring_acl_map BEFORE UPDATE ON keyring_acl_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_keyrings; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_keyrings BEFORE UPDATE ON keyrings FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_location; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_location BEFORE UPDATE ON location FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_maintainer; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_maintainer BEFORE UPDATE ON maintainer FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_new_comments; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_new_comments BEFORE UPDATE ON new_comments FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_override; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_override BEFORE UPDATE ON override FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_override_type; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_override_type BEFORE UPDATE ON override_type FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_policy_queue; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_policy_queue BEFORE UPDATE ON policy_queue FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_priority; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_priority BEFORE UPDATE ON priority FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_section; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_section BEFORE UPDATE ON section FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_source; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_source BEFORE UPDATE ON source FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_source_acl; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_source_acl BEFORE UPDATE ON source_acl FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_src_associations; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_src_associations BEFORE UPDATE ON src_associations FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_src_contents; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_src_contents BEFORE UPDATE ON src_contents FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_src_format; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_src_format BEFORE UPDATE ON src_format FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_src_uploaders; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_src_uploaders BEFORE UPDATE ON src_uploaders FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_suite; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_suite BEFORE UPDATE ON suite FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_suite_architectures; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_suite_architectures BEFORE UPDATE ON suite_architectures FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_suite_build_queue_copy; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_suite_build_queue_copy BEFORE UPDATE ON suite_build_queue_copy FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_suite_src_formats; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_suite_src_formats BEFORE UPDATE ON suite_src_formats FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_uid; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_uid BEFORE UPDATE ON uid FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: modified_upload_blocks; Type: TRIGGER; Schema: public; Owner: dak
---
-
-CREATE TRIGGER modified_upload_blocks BEFORE UPDATE ON upload_blocks FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
-
-
---
--- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY fingerprint
-    ADD CONSTRAINT "$1" FOREIGN KEY (keyring) REFERENCES keyrings(id);
-
-
---
--- Name: bin_associations_bin; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY bin_associations
-    ADD CONSTRAINT bin_associations_bin FOREIGN KEY (bin) REFERENCES binaries(id) MATCH FULL;
-
-
---
--- Name: bin_associations_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY bin_associations
-    ADD CONSTRAINT bin_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
-
-
---
--- Name: bin_contents_bin_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY bin_contents
-    ADD CONSTRAINT bin_contents_bin_fkey FOREIGN KEY (binary_id) REFERENCES binaries(id) ON DELETE CASCADE;
-
-
---
--- Name: binaries_architecture; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_architecture FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
-
-
---
--- Name: binaries_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
-
-
---
--- Name: binaries_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) MATCH FULL;
-
-
---
--- Name: binaries_metadata_bin_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries_metadata
-    ADD CONSTRAINT binaries_metadata_bin_id_fkey FOREIGN KEY (bin_id) REFERENCES binaries(id) ON DELETE CASCADE;
-
-
---
--- Name: binaries_metadata_key_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries_metadata
-    ADD CONSTRAINT binaries_metadata_key_id_fkey FOREIGN KEY (key_id) REFERENCES metadata_keys(key_id);
-
-
---
--- Name: binaries_sig_fpr; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
-
-
---
--- Name: binaries_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binaries
-    ADD CONSTRAINT binaries_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
-
-
---
--- Name: binary_acl_map_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binary_acl_map
-    ADD CONSTRAINT binary_acl_map_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
-
-
---
--- Name: binary_acl_map_fingerprint_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY binary_acl_map
-    ADD CONSTRAINT binary_acl_map_fingerprint_id_fkey FOREIGN KEY (fingerprint_id) REFERENCES fingerprint(id);
-
-
---
--- Name: build_queue_files_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY build_queue_files
-    ADD CONSTRAINT build_queue_files_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE CASCADE;
-
-
---
--- Name: build_queue_policy_files_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY build_queue_policy_files
-    ADD CONSTRAINT build_queue_policy_files_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE CASCADE;
-
-
---
--- Name: build_queue_policy_files_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY build_queue_policy_files
-    ADD CONSTRAINT build_queue_policy_files_file_id_fkey FOREIGN KEY (file_id) REFERENCES changes_pending_files(id) ON DELETE CASCADE;
-
-
---
--- Name: changes_pending_binaries_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
-
-
---
--- Name: changes_pending_binaries_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
-
-
---
--- Name: changes_pending_binaries_pending_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_pending_file_id_fkey FOREIGN KEY (pending_file_id) REFERENCES changes_pending_files(id);
-
-
---
--- Name: changes_pending_binaries_pending_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_pending_source_id_fkey FOREIGN KEY (pending_source_id) REFERENCES changes_pending_source(id);
-
-
---
--- Name: changes_pending_binaries_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_binaries
-    ADD CONSTRAINT changes_pending_binaries_source_id_fkey FOREIGN KEY (source_id) REFERENCES source(id);
-
-
---
--- Name: changes_pending_files_map_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_files_map
-    ADD CONSTRAINT changes_pending_files_map_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
-
-
---
--- Name: changes_pending_files_map_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_files_map
-    ADD CONSTRAINT changes_pending_files_map_file_id_fkey FOREIGN KEY (file_id) REFERENCES changes_pending_files(id);
-
-
---
--- Name: changes_pending_source_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source
-    ADD CONSTRAINT changes_pending_source_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
-
-
---
--- Name: changes_pending_source_changedby_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source
-    ADD CONSTRAINT changes_pending_source_changedby_id_fkey FOREIGN KEY (changedby_id) REFERENCES maintainer(id);
-
-
---
--- Name: changes_pending_source_files_pending_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source_files
-    ADD CONSTRAINT changes_pending_source_files_pending_file_id_fkey FOREIGN KEY (pending_file_id) REFERENCES changes_pending_files(id);
-
-
---
--- Name: changes_pending_source_files_pending_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source_files
-    ADD CONSTRAINT changes_pending_source_files_pending_source_id_fkey FOREIGN KEY (pending_source_id) REFERENCES changes_pending_source(id);
-
-
---
--- Name: changes_pending_source_maintainer_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source
-    ADD CONSTRAINT changes_pending_source_maintainer_id_fkey FOREIGN KEY (maintainer_id) REFERENCES maintainer(id);
-
-
---
--- Name: changes_pending_source_sig_fpr_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pending_source
-    ADD CONSTRAINT changes_pending_source_sig_fpr_fkey FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id);
-
-
---
--- Name: changes_pool_files_changeid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pool_files
-    ADD CONSTRAINT changes_pool_files_changeid_fkey FOREIGN KEY (changeid) REFERENCES changes(id) ON DELETE CASCADE;
-
-
---
--- Name: changes_pool_files_fileid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes_pool_files
-    ADD CONSTRAINT changes_pool_files_fileid_fkey FOREIGN KEY (fileid) REFERENCES files(id) ON DELETE RESTRICT;
-
-
---
--- Name: dsc_files_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY dsc_files
-    ADD CONSTRAINT dsc_files_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
-
-
---
--- Name: dsc_files_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY dsc_files
-    ADD CONSTRAINT dsc_files_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
-
-
---
--- Name: external_overrides_component_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY external_overrides
-    ADD CONSTRAINT external_overrides_component_fkey FOREIGN KEY (component) REFERENCES component(id);
-
-
---
--- Name: external_overrides_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY external_overrides
-    ADD CONSTRAINT external_overrides_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
-
-
---
--- Name: extra_src_references_bin_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY extra_src_references
-    ADD CONSTRAINT extra_src_references_bin_id_fkey FOREIGN KEY (bin_id) REFERENCES binaries(id) ON DELETE CASCADE;
-
-
---
--- Name: extra_src_references_src_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY extra_src_references
-    ADD CONSTRAINT extra_src_references_src_id_fkey FOREIGN KEY (src_id) REFERENCES source(id) ON DELETE RESTRICT;
-
-
---
--- Name: files_location; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY files
-    ADD CONSTRAINT files_location FOREIGN KEY (location) REFERENCES location(id) MATCH FULL;
-
-
---
--- Name: fingerprint_binary_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY fingerprint
-    ADD CONSTRAINT fingerprint_binary_acl_id_fkey FOREIGN KEY (binary_acl_id) REFERENCES binary_acl(id);
-
-
---
--- Name: fingerprint_source_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY fingerprint
-    ADD CONSTRAINT fingerprint_source_acl_id_fkey FOREIGN KEY (source_acl_id) REFERENCES source_acl(id);
-
-
---
--- Name: fingerprint_uid; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY fingerprint
-    ADD CONSTRAINT fingerprint_uid FOREIGN KEY (uid) REFERENCES uid(id) MATCH FULL;
-
-
---
--- Name: keyring_acl_map_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY keyring_acl_map
-    ADD CONSTRAINT keyring_acl_map_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
-
-
---
--- Name: keyring_acl_map_keyring_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY keyring_acl_map
-    ADD CONSTRAINT keyring_acl_map_keyring_id_fkey FOREIGN KEY (keyring_id) REFERENCES keyrings(id);
-
-
---
--- Name: keyrings_default_binary_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY keyrings
-    ADD CONSTRAINT keyrings_default_binary_acl_id_fkey FOREIGN KEY (default_binary_acl_id) REFERENCES binary_acl(id);
-
-
---
--- Name: keyrings_default_source_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY keyrings
-    ADD CONSTRAINT keyrings_default_source_acl_id_fkey FOREIGN KEY (default_source_acl_id) REFERENCES source_acl(id);
-
-
---
--- Name: known_changes_approved_for_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes
-    ADD CONSTRAINT known_changes_approved_for_fkey FOREIGN KEY (in_queue) REFERENCES policy_queue(id) ON DELETE RESTRICT;
-
-
---
--- Name: known_changes_in_queue_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY changes
-    ADD CONSTRAINT known_changes_in_queue_fkey FOREIGN KEY (in_queue) REFERENCES policy_queue(id) ON DELETE RESTRICT;
-
-
---
--- Name: location_archive_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY location
-    ADD CONSTRAINT location_archive_fkey FOREIGN KEY (archive) REFERENCES archive(id);
-
-
---
--- Name: location_component_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY location
-    ADD CONSTRAINT location_component_fkey FOREIGN KEY (component) REFERENCES component(id);
-
-
---
--- Name: override_component; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_component FOREIGN KEY (component) REFERENCES component(id) MATCH FULL;
-
-
---
--- Name: override_priority; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_priority FOREIGN KEY (priority) REFERENCES priority(id) MATCH FULL;
-
-
---
--- Name: override_section; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_section FOREIGN KEY (section) REFERENCES section(id) MATCH FULL;
-
-
---
--- Name: override_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
-
-
---
--- Name: override_type; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY override
-    ADD CONSTRAINT override_type FOREIGN KEY (type) REFERENCES override_type(id) MATCH FULL;
-
-
---
--- Name: queue_files_fileid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY build_queue_files
-    ADD CONSTRAINT queue_files_fileid_fkey FOREIGN KEY (fileid) REFERENCES files(id) ON DELETE CASCADE;
-
-
---
--- Name: source_changedby; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source
-    ADD CONSTRAINT source_changedby FOREIGN KEY (changedby) REFERENCES maintainer(id) MATCH FULL;
-
-
---
--- Name: source_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source
-    ADD CONSTRAINT source_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
-
-
---
--- Name: source_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source
-    ADD CONSTRAINT source_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) MATCH FULL;
-
-
---
--- Name: source_metadata_key_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source_metadata
-    ADD CONSTRAINT source_metadata_key_id_fkey FOREIGN KEY (key_id) REFERENCES metadata_keys(key_id);
-
-
---
--- Name: source_metadata_src_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source_metadata
-    ADD CONSTRAINT source_metadata_src_id_fkey FOREIGN KEY (src_id) REFERENCES source(id) ON DELETE CASCADE;
-
-
---
--- Name: source_sig_fpr; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY source
-    ADD CONSTRAINT source_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
-
-
---
--- Name: src_associations_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY src_associations
-    ADD CONSTRAINT src_associations_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
-
-
---
--- Name: src_associations_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY src_associations
-    ADD CONSTRAINT src_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
-
-
---
--- Name: src_contents_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY src_contents
-    ADD CONSTRAINT src_contents_source_id_fkey FOREIGN KEY (source_id) REFERENCES source(id) ON DELETE CASCADE;
-
-
---
--- Name: src_format_key; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_src_formats
-    ADD CONSTRAINT src_format_key FOREIGN KEY (src_format) REFERENCES src_format(id);
-
-
---
--- Name: src_uploaders_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY src_uploaders
-    ADD CONSTRAINT src_uploaders_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) ON DELETE CASCADE;
-
-
---
--- Name: src_uploaders_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY src_uploaders
-    ADD CONSTRAINT src_uploaders_source FOREIGN KEY (source) REFERENCES source(id) ON DELETE CASCADE;
-
-
---
--- Name: suite_architectures_architectur; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_architectures
-    ADD CONSTRAINT suite_architectures_architectur FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
-
-
---
--- Name: suite_architectures_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_architectures
-    ADD CONSTRAINT suite_architectures_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
-
-
---
--- Name: suite_build_queue_copy_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_build_queue_copy
-    ADD CONSTRAINT suite_build_queue_copy_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE RESTRICT;
-
-
---
--- Name: suite_key; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_src_formats
-    ADD CONSTRAINT suite_key FOREIGN KEY (suite) REFERENCES suite(id);
-
-
---
--- Name: suite_policy_queue_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite
-    ADD CONSTRAINT suite_policy_queue_fkey FOREIGN KEY (policy_queue_id) REFERENCES policy_queue(id) ON DELETE RESTRICT;
-
-
---
--- Name: suite_queue_copy_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY suite_build_queue_copy
-    ADD CONSTRAINT suite_queue_copy_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
-
-
---
--- Name: upload_blocks_fingerprint_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY upload_blocks
-    ADD CONSTRAINT upload_blocks_fingerprint_id_fkey FOREIGN KEY (fingerprint_id) REFERENCES fingerprint(id);
-
-
---
--- Name: upload_blocks_uid_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY upload_blocks
-    ADD CONSTRAINT upload_blocks_uid_id_fkey FOREIGN KEY (uid_id) REFERENCES uid(id);
-
-
---
--- Name: version_check_reference_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY version_check
-    ADD CONSTRAINT version_check_reference_fkey FOREIGN KEY (reference) REFERENCES suite(id);
-
-
---
--- Name: version_check_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
---
-
-ALTER TABLE ONLY version_check
-    ADD CONSTRAINT version_check_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
-
-
---
--- Name: public; Type: ACL; Schema: -; Owner: postgres
---
-
-REVOKE ALL ON SCHEMA public FROM PUBLIC;
-REVOKE ALL ON SCHEMA public FROM postgres;
-GRANT ALL ON SCHEMA public TO postgres;
-GRANT ALL ON SCHEMA public TO PUBLIC;
-
-
---
--- Name: bin_associations_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE bin_associations_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE bin_associations_id_seq FROM dak;
-GRANT ALL ON SEQUENCE bin_associations_id_seq TO dak;
-GRANT SELECT ON SEQUENCE bin_associations_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE bin_associations_id_seq TO ftpmaster;
-
-
---
--- Name: bin_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE bin_associations FROM PUBLIC;
-REVOKE ALL ON TABLE bin_associations FROM dak;
-GRANT ALL ON TABLE bin_associations TO dak;
-GRANT SELECT ON TABLE bin_associations TO PUBLIC;
-GRANT ALL ON TABLE bin_associations TO ftpmaster;
-GRANT DELETE ON TABLE bin_associations TO ftpteam;
-
-
---
--- Name: binaries_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE binaries_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE binaries_id_seq FROM dak;
-GRANT ALL ON SEQUENCE binaries_id_seq TO dak;
-GRANT SELECT ON SEQUENCE binaries_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE binaries_id_seq TO ftpmaster;
-
-
---
--- Name: binaries; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binaries FROM PUBLIC;
-REVOKE ALL ON TABLE binaries FROM dak;
-GRANT ALL ON TABLE binaries TO dak;
-GRANT SELECT ON TABLE binaries TO PUBLIC;
-GRANT ALL ON TABLE binaries TO ftpmaster;
-
-
---
--- Name: bin_associations_binaries; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE bin_associations_binaries FROM PUBLIC;
-REVOKE ALL ON TABLE bin_associations_binaries FROM dak;
-GRANT ALL ON TABLE bin_associations_binaries TO dak;
-GRANT SELECT ON TABLE bin_associations_binaries TO ftpmaster;
-GRANT SELECT ON TABLE bin_associations_binaries TO PUBLIC;
-
-
---
--- Name: source_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE source_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE source_id_seq FROM dak;
-GRANT ALL ON SEQUENCE source_id_seq TO dak;
-GRANT SELECT ON SEQUENCE source_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE source_id_seq TO ftpmaster;
-
-
---
--- Name: source; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE source FROM PUBLIC;
-REVOKE ALL ON TABLE source FROM dak;
-GRANT ALL ON TABLE source TO dak;
-GRANT SELECT ON TABLE source TO PUBLIC;
-GRANT ALL ON TABLE source TO ftpmaster;
-
-
---
--- Name: src_associations_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE src_associations_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE src_associations_id_seq FROM dak;
-GRANT ALL ON SEQUENCE src_associations_id_seq TO dak;
-GRANT SELECT ON SEQUENCE src_associations_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE src_associations_id_seq TO ftpmaster;
-
-
---
--- Name: src_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_associations FROM PUBLIC;
-REVOKE ALL ON TABLE src_associations FROM dak;
-GRANT ALL ON TABLE src_associations TO dak;
-GRANT SELECT ON TABLE src_associations TO PUBLIC;
-GRANT ALL ON TABLE src_associations TO ftpmaster;
-GRANT DELETE ON TABLE src_associations TO ftpteam;
-
-
---
--- Name: src_associations_bin; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_associations_bin FROM PUBLIC;
-REVOKE ALL ON TABLE src_associations_bin FROM dak;
-GRANT ALL ON TABLE src_associations_bin TO dak;
-GRANT SELECT ON TABLE src_associations_bin TO ftpmaster;
-GRANT SELECT ON TABLE src_associations_bin TO PUBLIC;
-
-
---
--- Name: almost_obsolete_all_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE almost_obsolete_all_associations FROM PUBLIC;
-REVOKE ALL ON TABLE almost_obsolete_all_associations FROM dak;
-GRANT ALL ON TABLE almost_obsolete_all_associations TO dak;
-GRANT SELECT ON TABLE almost_obsolete_all_associations TO ftpmaster;
-GRANT SELECT ON TABLE almost_obsolete_all_associations TO PUBLIC;
-
-
---
--- Name: any_associations_source; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE any_associations_source FROM PUBLIC;
-REVOKE ALL ON TABLE any_associations_source FROM dak;
-GRANT ALL ON TABLE any_associations_source TO dak;
-GRANT SELECT ON TABLE any_associations_source TO ftpmaster;
-GRANT SELECT ON TABLE any_associations_source TO PUBLIC;
-
-
---
--- Name: src_associations_src; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_associations_src FROM PUBLIC;
-REVOKE ALL ON TABLE src_associations_src FROM dak;
-GRANT ALL ON TABLE src_associations_src TO dak;
-GRANT SELECT ON TABLE src_associations_src TO ftpmaster;
-GRANT SELECT ON TABLE src_associations_src TO PUBLIC;
-
-
---
--- Name: almost_obsolete_src_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE almost_obsolete_src_associations FROM PUBLIC;
-REVOKE ALL ON TABLE almost_obsolete_src_associations FROM dak;
-GRANT ALL ON TABLE almost_obsolete_src_associations TO dak;
-GRANT SELECT ON TABLE almost_obsolete_src_associations TO ftpmaster;
-GRANT SELECT ON TABLE almost_obsolete_src_associations TO PUBLIC;
-
-
---
--- Name: architecture_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE architecture_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE architecture_id_seq FROM dak;
-GRANT ALL ON SEQUENCE architecture_id_seq TO dak;
-GRANT SELECT ON SEQUENCE architecture_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE architecture_id_seq TO ftpmaster;
-
-
---
--- Name: architecture; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE architecture FROM PUBLIC;
-REVOKE ALL ON TABLE architecture FROM dak;
-GRANT ALL ON TABLE architecture TO dak;
-GRANT SELECT ON TABLE architecture TO PUBLIC;
-GRANT ALL ON TABLE architecture TO ftpmaster;
-
-
---
--- Name: archive_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE archive_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE archive_id_seq FROM dak;
-GRANT ALL ON SEQUENCE archive_id_seq TO dak;
-GRANT SELECT ON SEQUENCE archive_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE archive_id_seq TO ftpmaster;
-
-
---
--- Name: archive; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE archive FROM PUBLIC;
-REVOKE ALL ON TABLE archive FROM dak;
-GRANT ALL ON TABLE archive TO dak;
-GRANT SELECT ON TABLE archive TO PUBLIC;
-GRANT ALL ON TABLE archive TO ftpmaster;
-
-
---
--- Name: bin_contents; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE bin_contents FROM PUBLIC;
-REVOKE ALL ON TABLE bin_contents FROM dak;
-GRANT ALL ON TABLE bin_contents TO dak;
-GRANT SELECT ON TABLE bin_contents TO PUBLIC;
-GRANT ALL ON TABLE bin_contents TO ftpmaster;
-
-
---
--- Name: binaries_metadata; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binaries_metadata FROM PUBLIC;
-REVOKE ALL ON TABLE binaries_metadata FROM dak;
-GRANT ALL ON TABLE binaries_metadata TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE binaries_metadata TO ftpmaster;
-GRANT SELECT ON TABLE binaries_metadata TO PUBLIC;
-
-
---
--- Name: suite_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE suite_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE suite_id_seq FROM dak;
-GRANT ALL ON SEQUENCE suite_id_seq TO dak;
-GRANT SELECT ON SEQUENCE suite_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE suite_id_seq TO ftpmaster;
-
-
---
--- Name: suite; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE suite FROM PUBLIC;
-REVOKE ALL ON TABLE suite FROM dak;
-GRANT ALL ON TABLE suite TO dak;
-GRANT SELECT ON TABLE suite TO PUBLIC;
-GRANT ALL ON TABLE suite TO ftpmaster;
-
-
---
--- Name: binaries_suite_arch; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binaries_suite_arch FROM PUBLIC;
-REVOKE ALL ON TABLE binaries_suite_arch FROM dak;
-GRANT ALL ON TABLE binaries_suite_arch TO dak;
-GRANT SELECT ON TABLE binaries_suite_arch TO ftpmaster;
-GRANT SELECT ON TABLE binaries_suite_arch TO PUBLIC;
-
-
---
--- Name: binary_acl; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binary_acl FROM PUBLIC;
-REVOKE ALL ON TABLE binary_acl FROM dak;
-GRANT ALL ON TABLE binary_acl TO dak;
-GRANT SELECT ON TABLE binary_acl TO PUBLIC;
-GRANT ALL ON TABLE binary_acl TO ftpmaster;
-
-
---
--- Name: binary_acl_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE binary_acl_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE binary_acl_id_seq FROM dak;
-GRANT ALL ON SEQUENCE binary_acl_id_seq TO dak;
-GRANT ALL ON SEQUENCE binary_acl_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE binary_acl_id_seq TO PUBLIC;
-
-
---
--- Name: binary_acl_map; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binary_acl_map FROM PUBLIC;
-REVOKE ALL ON TABLE binary_acl_map FROM dak;
-GRANT ALL ON TABLE binary_acl_map TO dak;
-GRANT SELECT ON TABLE binary_acl_map TO PUBLIC;
-GRANT ALL ON TABLE binary_acl_map TO ftpmaster;
-
-
---
--- Name: binary_acl_map_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE binary_acl_map_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE binary_acl_map_id_seq FROM dak;
-GRANT ALL ON SEQUENCE binary_acl_map_id_seq TO dak;
-GRANT ALL ON SEQUENCE binary_acl_map_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE binary_acl_map_id_seq TO PUBLIC;
-
-
---
--- Name: files_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE files_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE files_id_seq FROM dak;
-GRANT ALL ON SEQUENCE files_id_seq TO dak;
-GRANT SELECT ON SEQUENCE files_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE files_id_seq TO ftpmaster;
-
-
---
--- Name: files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE files FROM PUBLIC;
-REVOKE ALL ON TABLE files FROM dak;
-GRANT ALL ON TABLE files TO dak;
-GRANT SELECT ON TABLE files TO PUBLIC;
-GRANT ALL ON TABLE files TO ftpmaster;
-
-
---
--- Name: location_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE location_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE location_id_seq FROM dak;
-GRANT ALL ON SEQUENCE location_id_seq TO dak;
-GRANT SELECT ON SEQUENCE location_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE location_id_seq TO ftpmaster;
-
-
---
--- Name: location; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE location FROM PUBLIC;
-REVOKE ALL ON TABLE location FROM dak;
-GRANT ALL ON TABLE location TO dak;
-GRANT SELECT ON TABLE location TO PUBLIC;
-GRANT ALL ON TABLE location TO ftpmaster;
-
-
---
--- Name: binfiles_suite_component_arch; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE binfiles_suite_component_arch FROM PUBLIC;
-REVOKE ALL ON TABLE binfiles_suite_component_arch FROM dak;
-GRANT ALL ON TABLE binfiles_suite_component_arch TO dak;
-GRANT SELECT ON TABLE binfiles_suite_component_arch TO ftpmaster;
-GRANT SELECT ON TABLE binfiles_suite_component_arch TO PUBLIC;
-
-
---
--- Name: build_queue; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE build_queue FROM PUBLIC;
-REVOKE ALL ON TABLE build_queue FROM dak;
-GRANT ALL ON TABLE build_queue TO dak;
-GRANT SELECT ON TABLE build_queue TO PUBLIC;
-GRANT ALL ON TABLE build_queue TO ftpmaster;
-
-
---
--- Name: build_queue_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE build_queue_files FROM PUBLIC;
-REVOKE ALL ON TABLE build_queue_files FROM dak;
-GRANT ALL ON TABLE build_queue_files TO dak;
-GRANT SELECT ON TABLE build_queue_files TO PUBLIC;
-GRANT ALL ON TABLE build_queue_files TO ftpmaster;
-
-
---
--- Name: build_queue_files_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE build_queue_files_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE build_queue_files_id_seq FROM dak;
-GRANT ALL ON SEQUENCE build_queue_files_id_seq TO dak;
-GRANT ALL ON SEQUENCE build_queue_files_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE build_queue_files_id_seq TO PUBLIC;
-
-
---
--- Name: build_queue_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE build_queue_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE build_queue_id_seq FROM dak;
-GRANT ALL ON SEQUENCE build_queue_id_seq TO dak;
-GRANT ALL ON SEQUENCE build_queue_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE build_queue_id_seq TO PUBLIC;
-
-
---
--- Name: build_queue_policy_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE build_queue_policy_files FROM PUBLIC;
-REVOKE ALL ON TABLE build_queue_policy_files FROM dak;
-GRANT ALL ON TABLE build_queue_policy_files TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE build_queue_policy_files TO ftpmaster;
-GRANT SELECT ON TABLE build_queue_policy_files TO PUBLIC;
-
-
---
--- Name: changelogs_text; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changelogs_text FROM PUBLIC;
-REVOKE ALL ON TABLE changelogs_text FROM dak;
-GRANT ALL ON TABLE changelogs_text TO dak;
-GRANT SELECT ON TABLE changelogs_text TO PUBLIC;
-GRANT ALL ON TABLE changelogs_text TO ftpmaster;
-
-
---
--- Name: changes; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes FROM PUBLIC;
-REVOKE ALL ON TABLE changes FROM dak;
-GRANT ALL ON TABLE changes TO dak;
-GRANT ALL ON TABLE changes TO ftpmaster;
-GRANT SELECT ON TABLE changes TO PUBLIC;
-GRANT DELETE,UPDATE ON TABLE changes TO ftpteam;
-
-
---
--- Name: changelogs; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changelogs FROM PUBLIC;
-REVOKE ALL ON TABLE changelogs FROM dak;
-GRANT ALL ON TABLE changelogs TO dak;
-GRANT SELECT ON TABLE changelogs TO PUBLIC;
-GRANT ALL ON TABLE changelogs TO ftpmaster;
-
-
---
--- Name: changelogs_text_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE changelogs_text_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE changelogs_text_id_seq FROM dak;
-GRANT ALL ON SEQUENCE changelogs_text_id_seq TO dak;
-GRANT ALL ON SEQUENCE changelogs_text_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE changelogs_text_id_seq TO PUBLIC;
-
-
---
--- Name: changes_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE changes_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE changes_id_seq FROM dak;
-GRANT ALL ON SEQUENCE changes_id_seq TO dak;
-GRANT ALL ON SEQUENCE changes_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE changes_id_seq TO PUBLIC;
-
-
---
--- Name: changes_pending_binaries; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pending_binaries FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pending_binaries FROM dak;
-GRANT ALL ON TABLE changes_pending_binaries TO dak;
-GRANT SELECT ON TABLE changes_pending_binaries TO PUBLIC;
-GRANT ALL ON TABLE changes_pending_binaries TO ftpmaster;
-
-
---
--- Name: changes_pending_binaries_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE changes_pending_binaries_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE changes_pending_binaries_id_seq FROM dak;
-GRANT ALL ON SEQUENCE changes_pending_binaries_id_seq TO dak;
-GRANT ALL ON SEQUENCE changes_pending_binaries_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE changes_pending_binaries_id_seq TO PUBLIC;
-
-
---
--- Name: changes_pending_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pending_files FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pending_files FROM dak;
-GRANT ALL ON TABLE changes_pending_files TO dak;
-GRANT SELECT ON TABLE changes_pending_files TO PUBLIC;
-GRANT ALL ON TABLE changes_pending_files TO ftpmaster;
-GRANT DELETE ON TABLE changes_pending_files TO ftpteam;
-
-
---
--- Name: changes_pending_files_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE changes_pending_files_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE changes_pending_files_id_seq FROM dak;
-GRANT ALL ON SEQUENCE changes_pending_files_id_seq TO dak;
-GRANT ALL ON SEQUENCE changes_pending_files_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE changes_pending_files_id_seq TO PUBLIC;
-GRANT USAGE ON SEQUENCE changes_pending_files_id_seq TO ftpteam;
-
-
---
--- Name: changes_pending_files_map; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pending_files_map FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pending_files_map FROM dak;
-GRANT ALL ON TABLE changes_pending_files_map TO dak;
-GRANT SELECT,INSERT,DELETE ON TABLE changes_pending_files_map TO ftpteam;
-GRANT SELECT ON TABLE changes_pending_files_map TO PUBLIC;
-
-
---
--- Name: changes_pending_source; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pending_source FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pending_source FROM dak;
-GRANT ALL ON TABLE changes_pending_source TO dak;
-GRANT SELECT ON TABLE changes_pending_source TO PUBLIC;
-GRANT ALL ON TABLE changes_pending_source TO ftpmaster;
-
-
---
--- Name: changes_pending_source_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pending_source_files FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pending_source_files FROM dak;
-GRANT ALL ON TABLE changes_pending_source_files TO dak;
-GRANT SELECT ON TABLE changes_pending_source_files TO PUBLIC;
-GRANT ALL ON TABLE changes_pending_source_files TO ftpmaster;
-
-
---
--- Name: changes_pending_source_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE changes_pending_source_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE changes_pending_source_id_seq FROM dak;
-GRANT ALL ON SEQUENCE changes_pending_source_id_seq TO dak;
-GRANT ALL ON SEQUENCE changes_pending_source_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE changes_pending_source_id_seq TO PUBLIC;
-
-
---
--- Name: changes_pool_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE changes_pool_files FROM PUBLIC;
-REVOKE ALL ON TABLE changes_pool_files FROM dak;
-GRANT ALL ON TABLE changes_pool_files TO dak;
-GRANT SELECT ON TABLE changes_pool_files TO PUBLIC;
-GRANT ALL ON TABLE changes_pool_files TO ftpmaster;
-GRANT DELETE ON TABLE changes_pool_files TO ftpteam;
-
-
---
--- Name: component_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE component_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE component_id_seq FROM dak;
-GRANT ALL ON SEQUENCE component_id_seq TO dak;
-GRANT SELECT ON SEQUENCE component_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE component_id_seq TO ftpmaster;
-
-
---
--- Name: component; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE component FROM PUBLIC;
-REVOKE ALL ON TABLE component FROM dak;
-GRANT ALL ON TABLE component TO dak;
-GRANT SELECT ON TABLE component TO PUBLIC;
-GRANT ALL ON TABLE component TO ftpmaster;
-
-
---
--- Name: config; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE config FROM PUBLIC;
-REVOKE ALL ON TABLE config FROM dak;
-GRANT ALL ON TABLE config TO dak;
-GRANT ALL ON TABLE config TO ftpmaster;
-GRANT SELECT ON TABLE config TO ftpteam;
-GRANT SELECT ON TABLE config TO PUBLIC;
-
-
---
--- Name: config_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE config_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE config_id_seq FROM dak;
-GRANT ALL ON SEQUENCE config_id_seq TO dak;
-GRANT ALL ON SEQUENCE config_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE config_id_seq TO PUBLIC;
-
-
---
--- Name: dsc_files_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE dsc_files_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE dsc_files_id_seq FROM dak;
-GRANT ALL ON SEQUENCE dsc_files_id_seq TO dak;
-GRANT SELECT ON SEQUENCE dsc_files_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE dsc_files_id_seq TO ftpmaster;
-
-
---
--- Name: dsc_files; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE dsc_files FROM PUBLIC;
-REVOKE ALL ON TABLE dsc_files FROM dak;
-GRANT ALL ON TABLE dsc_files TO dak;
-GRANT SELECT ON TABLE dsc_files TO PUBLIC;
-GRANT ALL ON TABLE dsc_files TO ftpmaster;
-
-
---
--- Name: external_overrides; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE external_overrides FROM PUBLIC;
-REVOKE ALL ON TABLE external_overrides FROM dak;
-GRANT ALL ON TABLE external_overrides TO dak;
-GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE external_overrides TO ftpmaster;
-GRANT SELECT ON TABLE external_overrides TO PUBLIC;
-
-
---
--- Name: extra_src_references; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE extra_src_references FROM PUBLIC;
-REVOKE ALL ON TABLE extra_src_references FROM dak;
-GRANT ALL ON TABLE extra_src_references TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE extra_src_references TO ftpmaster;
-GRANT SELECT ON TABLE extra_src_references TO PUBLIC;
-
-
---
--- Name: file_arch_suite; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE file_arch_suite FROM PUBLIC;
-REVOKE ALL ON TABLE file_arch_suite FROM dak;
-GRANT ALL ON TABLE file_arch_suite TO dak;
-GRANT ALL ON TABLE file_arch_suite TO ftpmaster;
-GRANT SELECT ON TABLE file_arch_suite TO PUBLIC;
-
-
---
--- Name: fingerprint_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE fingerprint_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE fingerprint_id_seq FROM dak;
-GRANT ALL ON SEQUENCE fingerprint_id_seq TO dak;
-GRANT SELECT ON SEQUENCE fingerprint_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE fingerprint_id_seq TO ftpmaster;
-
-
---
--- Name: fingerprint; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE fingerprint FROM PUBLIC;
-REVOKE ALL ON TABLE fingerprint FROM dak;
-GRANT ALL ON TABLE fingerprint TO dak;
-GRANT SELECT ON TABLE fingerprint TO PUBLIC;
-GRANT ALL ON TABLE fingerprint TO ftpmaster;
-
-
---
--- Name: keyring_acl_map; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE keyring_acl_map FROM PUBLIC;
-REVOKE ALL ON TABLE keyring_acl_map FROM dak;
-GRANT ALL ON TABLE keyring_acl_map TO dak;
-GRANT SELECT ON TABLE keyring_acl_map TO PUBLIC;
-GRANT ALL ON TABLE keyring_acl_map TO ftpmaster;
-
-
---
--- Name: keyring_acl_map_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE keyring_acl_map_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE keyring_acl_map_id_seq FROM dak;
-GRANT ALL ON SEQUENCE keyring_acl_map_id_seq TO dak;
-GRANT ALL ON SEQUENCE keyring_acl_map_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE keyring_acl_map_id_seq TO PUBLIC;
-
-
---
--- Name: keyrings; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE keyrings FROM PUBLIC;
-REVOKE ALL ON TABLE keyrings FROM dak;
-GRANT ALL ON TABLE keyrings TO dak;
-GRANT SELECT ON TABLE keyrings TO PUBLIC;
-GRANT ALL ON TABLE keyrings TO ftpmaster;
-
-
---
--- Name: keyrings_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE keyrings_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE keyrings_id_seq FROM dak;
-GRANT ALL ON SEQUENCE keyrings_id_seq TO dak;
-GRANT SELECT ON SEQUENCE keyrings_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE keyrings_id_seq TO ftpmaster;
-
-
---
--- Name: maintainer_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE maintainer_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE maintainer_id_seq FROM dak;
-GRANT ALL ON SEQUENCE maintainer_id_seq TO dak;
-GRANT SELECT ON SEQUENCE maintainer_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE maintainer_id_seq TO ftpmaster;
-
-
---
--- Name: maintainer; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE maintainer FROM PUBLIC;
-REVOKE ALL ON TABLE maintainer FROM dak;
-GRANT ALL ON TABLE maintainer TO dak;
-GRANT SELECT ON TABLE maintainer TO PUBLIC;
-GRANT ALL ON TABLE maintainer TO ftpmaster;
-
-
---
--- Name: metadata_keys; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE metadata_keys FROM PUBLIC;
-REVOKE ALL ON TABLE metadata_keys FROM dak;
-GRANT ALL ON TABLE metadata_keys TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE metadata_keys TO ftpmaster;
-GRANT SELECT ON TABLE metadata_keys TO PUBLIC;
-
-
---
--- Name: metadata_keys_key_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE metadata_keys_key_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE metadata_keys_key_id_seq FROM dak;
-GRANT ALL ON SEQUENCE metadata_keys_key_id_seq TO dak;
-GRANT ALL ON SEQUENCE metadata_keys_key_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE metadata_keys_key_id_seq TO PUBLIC;
-
-
---
--- Name: new_comments; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE new_comments FROM PUBLIC;
-REVOKE ALL ON TABLE new_comments FROM dak;
-GRANT ALL ON TABLE new_comments TO dak;
-GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE new_comments TO ftptrainee;
-GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE new_comments TO ftpteam;
-GRANT ALL ON TABLE new_comments TO ftpmaster;
-
-
---
--- Name: new_comments_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE new_comments_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE new_comments_id_seq FROM dak;
-GRANT ALL ON SEQUENCE new_comments_id_seq TO dak;
-GRANT SELECT,UPDATE ON SEQUENCE new_comments_id_seq TO ftptrainee;
-GRANT SELECT,UPDATE ON SEQUENCE new_comments_id_seq TO ftpteam;
-GRANT ALL ON SEQUENCE new_comments_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE new_comments_id_seq TO PUBLIC;
-
-
---
--- Name: newest_all_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE newest_all_associations FROM PUBLIC;
-REVOKE ALL ON TABLE newest_all_associations FROM dak;
-GRANT ALL ON TABLE newest_all_associations TO dak;
-GRANT SELECT ON TABLE newest_all_associations TO ftpmaster;
-GRANT SELECT ON TABLE newest_all_associations TO PUBLIC;
-
-
---
--- Name: newest_any_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE newest_any_associations FROM PUBLIC;
-REVOKE ALL ON TABLE newest_any_associations FROM dak;
-GRANT ALL ON TABLE newest_any_associations TO dak;
-GRANT SELECT ON TABLE newest_any_associations TO ftpmaster;
-GRANT SELECT ON TABLE newest_any_associations TO PUBLIC;
-
-
---
--- Name: source_suite; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE source_suite FROM PUBLIC;
-REVOKE ALL ON TABLE source_suite FROM dak;
-GRANT ALL ON TABLE source_suite TO dak;
-GRANT SELECT ON TABLE source_suite TO ftpmaster;
-GRANT SELECT ON TABLE source_suite TO PUBLIC;
-
-
---
--- Name: newest_source; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE newest_source FROM PUBLIC;
-REVOKE ALL ON TABLE newest_source FROM dak;
-GRANT ALL ON TABLE newest_source TO dak;
-GRANT SELECT ON TABLE newest_source TO ftpmaster;
-GRANT SELECT ON TABLE newest_source TO PUBLIC;
-
-
---
--- Name: newest_src_association; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE newest_src_association FROM PUBLIC;
-REVOKE ALL ON TABLE newest_src_association FROM dak;
-GRANT ALL ON TABLE newest_src_association TO dak;
-GRANT SELECT ON TABLE newest_src_association TO ftpmaster;
-GRANT SELECT ON TABLE newest_src_association TO PUBLIC;
-
-
---
--- Name: obsolete_all_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE obsolete_all_associations FROM PUBLIC;
-REVOKE ALL ON TABLE obsolete_all_associations FROM dak;
-GRANT ALL ON TABLE obsolete_all_associations TO dak;
-GRANT SELECT ON TABLE obsolete_all_associations TO ftpmaster;
-GRANT SELECT ON TABLE obsolete_all_associations TO PUBLIC;
-
-
---
--- Name: obsolete_any_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE obsolete_any_associations FROM PUBLIC;
-REVOKE ALL ON TABLE obsolete_any_associations FROM dak;
-GRANT ALL ON TABLE obsolete_any_associations TO dak;
-GRANT SELECT ON TABLE obsolete_any_associations TO ftpmaster;
-GRANT SELECT ON TABLE obsolete_any_associations TO PUBLIC;
-
-
---
--- Name: obsolete_any_by_all_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE obsolete_any_by_all_associations FROM PUBLIC;
-REVOKE ALL ON TABLE obsolete_any_by_all_associations FROM dak;
-GRANT ALL ON TABLE obsolete_any_by_all_associations TO dak;
-GRANT SELECT ON TABLE obsolete_any_by_all_associations TO ftpmaster;
-GRANT SELECT ON TABLE obsolete_any_by_all_associations TO PUBLIC;
-
-
---
--- Name: obsolete_src_associations; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE obsolete_src_associations FROM PUBLIC;
-REVOKE ALL ON TABLE obsolete_src_associations FROM dak;
-GRANT ALL ON TABLE obsolete_src_associations TO dak;
-GRANT SELECT ON TABLE obsolete_src_associations TO ftpmaster;
-GRANT SELECT ON TABLE obsolete_src_associations TO PUBLIC;
-
-
---
--- Name: override; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE override FROM PUBLIC;
-REVOKE ALL ON TABLE override FROM dak;
-GRANT ALL ON TABLE override TO dak;
-GRANT SELECT ON TABLE override TO PUBLIC;
-GRANT ALL ON TABLE override TO ftpmaster;
-GRANT INSERT,DELETE,UPDATE ON TABLE override TO ftpteam;
-
-
---
--- Name: override_type_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE override_type_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE override_type_id_seq FROM dak;
-GRANT ALL ON SEQUENCE override_type_id_seq TO dak;
-GRANT SELECT ON SEQUENCE override_type_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE override_type_id_seq TO ftpmaster;
-
-
---
--- Name: override_type; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE override_type FROM PUBLIC;
-REVOKE ALL ON TABLE override_type FROM dak;
-GRANT ALL ON TABLE override_type TO dak;
-GRANT SELECT ON TABLE override_type TO PUBLIC;
-GRANT ALL ON TABLE override_type TO ftpmaster;
-
-
---
--- Name: policy_queue; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE policy_queue FROM PUBLIC;
-REVOKE ALL ON TABLE policy_queue FROM dak;
-GRANT ALL ON TABLE policy_queue TO dak;
-GRANT SELECT ON TABLE policy_queue TO PUBLIC;
-GRANT ALL ON TABLE policy_queue TO ftpmaster;
-
-
---
--- Name: policy_queue_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE policy_queue_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE policy_queue_id_seq FROM dak;
-GRANT ALL ON SEQUENCE policy_queue_id_seq TO dak;
-GRANT ALL ON SEQUENCE policy_queue_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE policy_queue_id_seq TO PUBLIC;
-
-
---
--- Name: priority_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE priority_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE priority_id_seq FROM dak;
-GRANT ALL ON SEQUENCE priority_id_seq TO dak;
-GRANT SELECT ON SEQUENCE priority_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE priority_id_seq TO ftpmaster;
-
-
---
--- Name: priority; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE priority FROM PUBLIC;
-REVOKE ALL ON TABLE priority FROM dak;
-GRANT ALL ON TABLE priority TO dak;
-GRANT SELECT ON TABLE priority TO PUBLIC;
-GRANT ALL ON TABLE priority TO ftpmaster;
-
-
---
--- Name: section_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE section_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE section_id_seq FROM dak;
-GRANT ALL ON SEQUENCE section_id_seq TO dak;
-GRANT SELECT ON SEQUENCE section_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE section_id_seq TO ftpmaster;
-
-
---
--- Name: section; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE section FROM PUBLIC;
-REVOKE ALL ON TABLE section FROM dak;
-GRANT ALL ON TABLE section TO dak;
-GRANT SELECT ON TABLE section TO PUBLIC;
-GRANT ALL ON TABLE section TO ftpmaster;
-
-
---
--- Name: source_acl; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE source_acl FROM PUBLIC;
-REVOKE ALL ON TABLE source_acl FROM dak;
-GRANT ALL ON TABLE source_acl TO dak;
-GRANT SELECT ON TABLE source_acl TO PUBLIC;
-GRANT ALL ON TABLE source_acl TO ftpmaster;
-
-
---
--- Name: source_acl_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE source_acl_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE source_acl_id_seq FROM dak;
-GRANT ALL ON SEQUENCE source_acl_id_seq TO dak;
-GRANT ALL ON SEQUENCE source_acl_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE source_acl_id_seq TO PUBLIC;
-
-
---
--- Name: source_metadata; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE source_metadata FROM PUBLIC;
-REVOKE ALL ON TABLE source_metadata FROM dak;
-GRANT ALL ON TABLE source_metadata TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE source_metadata TO ftpmaster;
-GRANT SELECT ON TABLE source_metadata TO PUBLIC;
-
-
---
--- Name: src_contents; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_contents FROM PUBLIC;
-REVOKE ALL ON TABLE src_contents FROM dak;
-GRANT ALL ON TABLE src_contents TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE src_contents TO ftpmaster;
-GRANT SELECT ON TABLE src_contents TO PUBLIC;
-
-
---
--- Name: src_format; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_format FROM PUBLIC;
-REVOKE ALL ON TABLE src_format FROM dak;
-GRANT ALL ON TABLE src_format TO dak;
-GRANT SELECT ON TABLE src_format TO PUBLIC;
-GRANT ALL ON TABLE src_format TO ftpmaster;
-
-
---
--- Name: src_format_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE src_format_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE src_format_id_seq FROM dak;
-GRANT ALL ON SEQUENCE src_format_id_seq TO dak;
-GRANT ALL ON SEQUENCE src_format_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE src_format_id_seq TO PUBLIC;
-
-
---
--- Name: src_uploaders; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE src_uploaders FROM PUBLIC;
-REVOKE ALL ON TABLE src_uploaders FROM dak;
-GRANT ALL ON TABLE src_uploaders TO dak;
-GRANT SELECT ON TABLE src_uploaders TO PUBLIC;
-GRANT ALL ON TABLE src_uploaders TO ftpmaster;
-
-
---
--- Name: src_uploaders_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE src_uploaders_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE src_uploaders_id_seq FROM dak;
-GRANT ALL ON SEQUENCE src_uploaders_id_seq TO dak;
-GRANT SELECT ON SEQUENCE src_uploaders_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE src_uploaders_id_seq TO ftpmaster;
-
-
---
--- Name: suite_architectures; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE suite_architectures FROM PUBLIC;
-REVOKE ALL ON TABLE suite_architectures FROM dak;
-GRANT ALL ON TABLE suite_architectures TO dak;
-GRANT SELECT ON TABLE suite_architectures TO PUBLIC;
-GRANT ALL ON TABLE suite_architectures TO ftpmaster;
-
-
---
--- Name: suite_arch_by_name; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE suite_arch_by_name FROM PUBLIC;
-REVOKE ALL ON TABLE suite_arch_by_name FROM dak;
-GRANT ALL ON TABLE suite_arch_by_name TO dak;
-GRANT SELECT ON TABLE suite_arch_by_name TO PUBLIC;
-GRANT SELECT ON TABLE suite_arch_by_name TO ftpmaster;
-
-
---
--- Name: suite_build_queue_copy; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE suite_build_queue_copy FROM PUBLIC;
-REVOKE ALL ON TABLE suite_build_queue_copy FROM dak;
-GRANT ALL ON TABLE suite_build_queue_copy TO dak;
-GRANT SELECT ON TABLE suite_build_queue_copy TO PUBLIC;
-GRANT ALL ON TABLE suite_build_queue_copy TO ftpmaster;
-
-
---
--- Name: suite_src_formats; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE suite_src_formats FROM PUBLIC;
-REVOKE ALL ON TABLE suite_src_formats FROM dak;
-GRANT ALL ON TABLE suite_src_formats TO dak;
-GRANT SELECT ON TABLE suite_src_formats TO PUBLIC;
-GRANT ALL ON TABLE suite_src_formats TO ftpmaster;
-
-
---
--- Name: uid_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE uid_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE uid_id_seq FROM dak;
-GRANT ALL ON SEQUENCE uid_id_seq TO dak;
-GRANT SELECT ON SEQUENCE uid_id_seq TO PUBLIC;
-GRANT ALL ON SEQUENCE uid_id_seq TO ftpmaster;
-
-
---
--- Name: uid; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE uid FROM PUBLIC;
-REVOKE ALL ON TABLE uid FROM dak;
-GRANT ALL ON TABLE uid TO dak;
-GRANT SELECT ON TABLE uid TO PUBLIC;
-GRANT ALL ON TABLE uid TO ftpmaster;
-
-
---
--- Name: upload_blocks; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE upload_blocks FROM PUBLIC;
-REVOKE ALL ON TABLE upload_blocks FROM dak;
-GRANT ALL ON TABLE upload_blocks TO dak;
-GRANT SELECT ON TABLE upload_blocks TO PUBLIC;
-GRANT ALL ON TABLE upload_blocks TO ftpmaster;
-
-
---
--- Name: upload_blocks_id_seq; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON SEQUENCE upload_blocks_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE upload_blocks_id_seq FROM dak;
-GRANT ALL ON SEQUENCE upload_blocks_id_seq TO dak;
-GRANT ALL ON SEQUENCE upload_blocks_id_seq TO ftpmaster;
-GRANT SELECT ON SEQUENCE upload_blocks_id_seq TO PUBLIC;
-
-
---
--- Name: version_check; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE version_check FROM PUBLIC;
-REVOKE ALL ON TABLE version_check FROM dak;
-GRANT ALL ON TABLE version_check TO dak;
-GRANT SELECT,INSERT,UPDATE ON TABLE version_check TO ftpmaster;
-GRANT SELECT ON TABLE version_check TO PUBLIC;
-
-
---
--- Name: version_checks; Type: ACL; Schema: public; Owner: dak
---
-
-REVOKE ALL ON TABLE version_checks FROM PUBLIC;
-REVOKE ALL ON TABLE version_checks FROM dak;
-GRANT ALL ON TABLE version_checks TO dak;
-GRANT SELECT ON TABLE version_checks TO PUBLIC;
-
-
---
--- PostgreSQL database dump complete
---
-
--- Set schema version
-INSERT INTO config (name, value) VALUES ('db_revision', 64);
-
diff --git a/setup/schema_65.sql b/setup/schema_65.sql
new file mode 100644 (file)
index 0000000..6a8ce59
--- /dev/null
@@ -0,0 +1,5591 @@
+--
+-- PostgreSQL database dump
+--
+
+SET statement_timeout = 0;
+SET client_encoding = 'SQL_ASCII';
+SET standard_conforming_strings = off;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+SET escape_string_warning = off;
+
+--
+-- Name: plperl; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
+--
+
+CREATE OR REPLACE PROCEDURAL LANGUAGE plperl;
+
+
+ALTER PROCEDURAL LANGUAGE plperl OWNER TO dak;
+
+--
+-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
+--
+
+CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
+
+
+ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO dak;
+
+--
+-- Name: plpythonu; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: dak
+--
+
+CREATE OR REPLACE PROCEDURAL LANGUAGE plpythonu;
+
+
+ALTER PROCEDURAL LANGUAGE plpythonu OWNER TO dak;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Name: debversion; Type: SHELL TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE debversion;
+
+
+--
+-- Name: debversionin(cstring); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversionin(cstring) RETURNS debversion
+    LANGUAGE internal IMMUTABLE STRICT
+    AS $$textin$$;
+
+
+ALTER FUNCTION public.debversionin(cstring) OWNER TO postgres;
+
+--
+-- Name: debversionout(debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversionout(debversion) RETURNS cstring
+    LANGUAGE internal IMMUTABLE STRICT
+    AS $$textout$$;
+
+
+ALTER FUNCTION public.debversionout(debversion) OWNER TO postgres;
+
+--
+-- Name: debversionrecv(internal); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversionrecv(internal) RETURNS debversion
+    LANGUAGE internal STABLE STRICT
+    AS $$textrecv$$;
+
+
+ALTER FUNCTION public.debversionrecv(internal) OWNER TO postgres;
+
+--
+-- Name: debversionsend(debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversionsend(debversion) RETURNS bytea
+    LANGUAGE internal STABLE STRICT
+    AS $$textsend$$;
+
+
+ALTER FUNCTION public.debversionsend(debversion) OWNER TO postgres;
+
+--
+-- Name: debversion; Type: TYPE; Schema: public; Owner: postgres
+--
+
+CREATE TYPE debversion (
+    INTERNALLENGTH = variable,
+    INPUT = debversionin,
+    OUTPUT = debversionout,
+    RECEIVE = debversionrecv,
+    SEND = debversionsend,
+    CATEGORY = 'S',
+    ALIGNMENT = int4,
+    STORAGE = extended
+);
+
+
+ALTER TYPE public.debversion OWNER TO postgres;
+
+--
+-- Name: TYPE debversion; Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON TYPE debversion IS 'Debian package version number';
+
+
+--
+-- Name: bin_associations_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION bin_associations_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM bin_associations$$;
+
+
+ALTER FUNCTION public.bin_associations_id_max() OWNER TO dak;
+
+--
+-- Name: binaries_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION binaries_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM binaries$$;
+
+
+ALTER FUNCTION public.binaries_id_max() OWNER TO dak;
+
+--
+-- Name: debversion(character); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion(character) RETURNS debversion
+    LANGUAGE internal IMMUTABLE STRICT
+    AS $$rtrim1$$;
+
+
+ALTER FUNCTION public.debversion(character) OWNER TO postgres;
+
+--
+-- Name: debversion_cmp(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_cmp(version1 debversion, version2 debversion) RETURNS integer
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_cmp';
+
+
+ALTER FUNCTION public.debversion_cmp(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_cmp(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_cmp(version1 debversion, version2 debversion) IS 'Compare Debian versions';
+
+
+--
+-- Name: debversion_compare_single(text, text); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION debversion_compare_single(version1 text, version2 text) RETURNS integer
+    LANGUAGE plperl IMMUTABLE STRICT
+    AS $_$
+     sub order{
+         my ($x) = @_;
+         ##define order(x) ((x) == '~' ? -1      #           : cisdigit((x)) ? 0         #           : !(x) ? 0          #           : cisalpha((x)) ? (x)       #           : (x) + 256)
+         # This comparison is out of dpkg's order to avoid
+         # comparing things to undef and triggering warnings.
+         if (not defined $x or not length $x) {
+              return 0;
+         }
+         elsif ($x eq '~') {
+              return -1;
+         }
+         elsif ($x =~ /^\d$/) {
+              return 0;
+         }
+         elsif ($x =~ /^[A-Z]$/i) {
+              return ord($x);
+         }
+         else {
+              return ord($x) + 256;
+         }
+     }
+
+     sub next_elem(\@){
+         my $a = shift;
+         return @{$a} ? shift @{$a} : undef;
+     }
+     my ($val, $ref) = @_;
+     $val = "" if not defined $val;
+     $ref = "" if not defined $ref;
+     my @val = split //,$val;
+     my @ref = split //,$ref;
+     my $vc = next_elem @val;
+     my $rc = next_elem @ref;
+     while (defined $vc or defined $rc) {
+         my $first_diff = 0;
+         while ((defined $vc and $vc !~ /^\d$/) or
+                (defined $rc and $rc !~ /^\d$/)) {
+              my $vo = order($vc); my $ro = order($rc);
+              # Unlike dpkg's verrevcmp, we only return 1 or -1 here.
+              return (($vo - $ro > 0) ? 1 : -1) if $vo != $ro;
+              $vc = next_elem @val; $rc = next_elem @ref;
+         }
+         while (defined $vc and $vc eq '0') {
+              $vc = next_elem @val;
+         }
+         while (defined $rc and $rc eq '0') {
+              $rc = next_elem @ref;
+         }
+         while (defined $vc and $vc =~ /^\d$/ and
+                defined $rc and $rc =~ /^\d$/) {
+              $first_diff = ord($vc) - ord($rc) if !$first_diff;
+              $vc = next_elem @val; $rc = next_elem @ref;
+         }
+         return 1 if defined $vc and $vc =~ /^\d$/;
+         return -1 if defined $rc and $rc =~ /^\d$/;
+         return (($first_diff  > 0) ? 1 : -1) if $first_diff;
+     }
+     return 0;
+$_$;
+
+
+ALTER FUNCTION public.debversion_compare_single(version1 text, version2 text) OWNER TO dak;
+
+--
+-- Name: FUNCTION debversion_compare_single(version1 text, version2 text); Type: COMMENT; Schema: public; Owner: dak
+--
+
+COMMENT ON FUNCTION debversion_compare_single(version1 text, version2 text) IS 'Compare upstream or revision parts of Debian versions';
+
+
+--
+-- Name: debversion_eq(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_eq(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_eq';
+
+
+ALTER FUNCTION public.debversion_eq(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_eq(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_eq(version1 debversion, version2 debversion) IS 'debversion equal';
+
+
+--
+-- Name: debversion_ge(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_ge(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_ge';
+
+
+ALTER FUNCTION public.debversion_ge(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_ge(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_ge(version1 debversion, version2 debversion) IS 'debversion greater-than-or-equal';
+
+
+--
+-- Name: debversion_gt(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_gt(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_gt';
+
+
+ALTER FUNCTION public.debversion_gt(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_gt(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_gt(version1 debversion, version2 debversion) IS 'debversion greater-than';
+
+
+--
+-- Name: debversion_hash(debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_hash(debversion) RETURNS integer
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_hash';
+
+
+ALTER FUNCTION public.debversion_hash(debversion) OWNER TO postgres;
+
+--
+-- Name: debversion_larger(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_larger(version1 debversion, version2 debversion) RETURNS debversion
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_larger';
+
+
+ALTER FUNCTION public.debversion_larger(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: debversion_le(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_le(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_le';
+
+
+ALTER FUNCTION public.debversion_le(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_le(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_le(version1 debversion, version2 debversion) IS 'debversion less-than-or-equal';
+
+
+--
+-- Name: debversion_lt(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_lt(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_lt';
+
+
+ALTER FUNCTION public.debversion_lt(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_lt(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_lt(version1 debversion, version2 debversion) IS 'debversion less-than';
+
+
+--
+-- Name: debversion_ne(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_ne(version1 debversion, version2 debversion) RETURNS boolean
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_ne';
+
+
+ALTER FUNCTION public.debversion_ne(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: FUNCTION debversion_ne(version1 debversion, version2 debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON FUNCTION debversion_ne(version1 debversion, version2 debversion) IS 'debversion not equal';
+
+
+--
+-- Name: debversion_smaller(debversion, debversion); Type: FUNCTION; Schema: public; Owner: postgres
+--
+
+CREATE FUNCTION debversion_smaller(version1 debversion, version2 debversion) RETURNS debversion
+    LANGUAGE c IMMUTABLE STRICT
+    AS '$libdir/debversion', 'debversion_smaller';
+
+
+ALTER FUNCTION public.debversion_smaller(version1 debversion, version2 debversion) OWNER TO postgres;
+
+--
+-- Name: dsc_files_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION dsc_files_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM dsc_files$$;
+
+
+ALTER FUNCTION public.dsc_files_id_max() OWNER TO dak;
+
+--
+-- Name: files_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION files_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM files$$;
+
+
+ALTER FUNCTION public.files_id_max() OWNER TO dak;
+
+--
+-- Name: override_type_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION override_type_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM override_type$$;
+
+
+ALTER FUNCTION public.override_type_id_max() OWNER TO dak;
+
+--
+-- Name: priority_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION priority_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM priority$$;
+
+
+ALTER FUNCTION public.priority_id_max() OWNER TO dak;
+
+--
+-- Name: section_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION section_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM section$$;
+
+
+ALTER FUNCTION public.section_id_max() OWNER TO dak;
+
+--
+-- Name: source_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION source_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM source$$;
+
+
+ALTER FUNCTION public.source_id_max() OWNER TO dak;
+
+--
+-- Name: space_concat(text, text); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION space_concat(text, text) RETURNS text
+    LANGUAGE sql
+    AS $_$select case
+WHEN $2 is null or $2 = '' THEN $1
+WHEN $1 is null or $1 = '' THEN $2
+ELSE $1 || ' ' || $2
+END$_$;
+
+
+ALTER FUNCTION public.space_concat(text, text) OWNER TO dak;
+
+--
+-- Name: src_associations_id_max(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION src_associations_id_max() RETURNS integer
+    LANGUAGE sql
+    AS $$SELECT max(id) FROM src_associations$$;
+
+
+ALTER FUNCTION public.src_associations_id_max() OWNER TO dak;
+
+--
+-- Name: tfunc_set_modified(); Type: FUNCTION; Schema: public; Owner: dak
+--
+
+CREATE FUNCTION tfunc_set_modified() RETURNS trigger
+    LANGUAGE plpgsql
+    AS $$
+    BEGIN NEW.modified = now(); return NEW; END;
+    $$;
+
+
+ALTER FUNCTION public.tfunc_set_modified() OWNER TO dak;
+
+--
+-- Name: >; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR > (
+    PROCEDURE = debversion_gt,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = <,
+    NEGATOR = >=
+);
+
+
+ALTER OPERATOR public.> (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR > (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR > (debversion, debversion) IS 'debversion greater-than';
+
+
+--
+-- Name: max(debversion); Type: AGGREGATE; Schema: public; Owner: postgres
+--
+
+CREATE AGGREGATE max(debversion) (
+    SFUNC = debversion_larger,
+    STYPE = debversion,
+    SORTOP = >
+);
+
+
+ALTER AGGREGATE public.max(debversion) OWNER TO postgres;
+
+--
+-- Name: <; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR < (
+    PROCEDURE = debversion_lt,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = >,
+    NEGATOR = >=
+);
+
+
+ALTER OPERATOR public.< (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR < (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR < (debversion, debversion) IS 'debversion less-than';
+
+
+--
+-- Name: min(debversion); Type: AGGREGATE; Schema: public; Owner: postgres
+--
+
+CREATE AGGREGATE min(debversion) (
+    SFUNC = debversion_smaller,
+    STYPE = debversion,
+    SORTOP = <
+);
+
+
+ALTER AGGREGATE public.min(debversion) OWNER TO postgres;
+
+--
+-- Name: space_separated_list(text); Type: AGGREGATE; Schema: public; Owner: dak
+--
+
+CREATE AGGREGATE space_separated_list(text) (
+    SFUNC = space_concat,
+    STYPE = text,
+    INITCOND = ''
+);
+
+
+ALTER AGGREGATE public.space_separated_list(text) OWNER TO dak;
+
+--
+-- Name: <=; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR <= (
+    PROCEDURE = debversion_le,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = >=,
+    NEGATOR = >
+);
+
+
+ALTER OPERATOR public.<= (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR <= (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR <= (debversion, debversion) IS 'debversion less-than-or-equal';
+
+
+--
+-- Name: <>; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR <> (
+    PROCEDURE = debversion_ne,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = <>,
+    NEGATOR = =
+);
+
+
+ALTER OPERATOR public.<> (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR <> (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR <> (debversion, debversion) IS 'debversion not equal';
+
+
+--
+-- Name: =; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR = (
+    PROCEDURE = debversion_eq,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = =,
+    NEGATOR = <>
+);
+
+
+ALTER OPERATOR public.= (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR = (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR = (debversion, debversion) IS 'debversion equal';
+
+
+--
+-- Name: >=; Type: OPERATOR; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR >= (
+    PROCEDURE = debversion_ge,
+    LEFTARG = debversion,
+    RIGHTARG = debversion,
+    COMMUTATOR = <=,
+    NEGATOR = <
+);
+
+
+ALTER OPERATOR public.>= (debversion, debversion) OWNER TO postgres;
+
+--
+-- Name: OPERATOR >= (debversion, debversion); Type: COMMENT; Schema: public; Owner: postgres
+--
+
+COMMENT ON OPERATOR >= (debversion, debversion) IS 'debversion greater-than-or-equal';
+
+
+--
+-- Name: debversion_ops; Type: OPERATOR CLASS; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR CLASS debversion_ops
+    DEFAULT FOR TYPE debversion USING btree AS
+    OPERATOR 1 <(debversion,debversion) ,
+    OPERATOR 2 <=(debversion,debversion) ,
+    OPERATOR 3 =(debversion,debversion) ,
+    OPERATOR 4 >=(debversion,debversion) ,
+    OPERATOR 5 >(debversion,debversion) ,
+    FUNCTION 1 debversion_cmp(debversion,debversion);
+
+
+ALTER OPERATOR CLASS public.debversion_ops USING btree OWNER TO postgres;
+
+--
+-- Name: debversion_ops; Type: OPERATOR CLASS; Schema: public; Owner: postgres
+--
+
+CREATE OPERATOR CLASS debversion_ops
+    DEFAULT FOR TYPE debversion USING hash AS
+    OPERATOR 1 =(debversion,debversion) ,
+    FUNCTION 1 debversion_hash(debversion);
+
+
+ALTER OPERATOR CLASS public.debversion_ops USING hash OWNER TO postgres;
+
+SET search_path = pg_catalog;
+
+--
+-- Name: CAST (character AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (character AS public.debversion) WITH FUNCTION public.debversion(character);
+
+
+--
+-- Name: CAST (public.debversion AS character); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (public.debversion AS character) WITHOUT FUNCTION AS ASSIGNMENT;
+
+
+--
+-- Name: CAST (public.debversion AS text); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (public.debversion AS text) WITHOUT FUNCTION AS IMPLICIT;
+
+
+--
+-- Name: CAST (public.debversion AS character varying); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (public.debversion AS character varying) WITHOUT FUNCTION AS IMPLICIT;
+
+
+--
+-- Name: CAST (text AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (text AS public.debversion) WITHOUT FUNCTION AS ASSIGNMENT;
+
+
+--
+-- Name: CAST (character varying AS public.debversion); Type: CAST; Schema: pg_catalog; Owner: 
+--
+
+CREATE CAST (character varying AS public.debversion) WITHOUT FUNCTION AS ASSIGNMENT;
+
+
+SET search_path = public, pg_catalog;
+
+--
+-- Name: bin_associations_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE bin_associations_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.bin_associations_id_seq OWNER TO dak;
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+--
+-- Name: bin_associations; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE bin_associations (
+    id integer DEFAULT nextval('bin_associations_id_seq'::regclass) NOT NULL,
+    suite integer NOT NULL,
+    bin integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.bin_associations OWNER TO dak;
+
+--
+-- Name: binaries_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE binaries_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.binaries_id_seq OWNER TO dak;
+
+--
+-- Name: binaries; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE binaries (
+    id integer DEFAULT nextval('binaries_id_seq'::regclass) NOT NULL,
+    package text NOT NULL,
+    version debversion NOT NULL,
+    maintainer integer NOT NULL,
+    source integer NOT NULL,
+    architecture integer NOT NULL,
+    file integer NOT NULL,
+    type text NOT NULL,
+    sig_fpr integer,
+    install_date timestamp with time zone DEFAULT now(),
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    stanza text
+);
+
+
+ALTER TABLE public.binaries OWNER TO dak;
+
+--
+-- Name: bin_associations_binaries; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW bin_associations_binaries AS
+    SELECT bin_associations.id, bin_associations.bin, binaries.package, binaries.version, bin_associations.suite, binaries.architecture, binaries.source FROM (bin_associations JOIN binaries ON ((bin_associations.bin = binaries.id)));
+
+
+ALTER TABLE public.bin_associations_binaries OWNER TO dak;
+
+--
+-- Name: source_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE source_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.source_id_seq OWNER TO dak;
+
+--
+-- Name: source; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE source (
+    id integer DEFAULT nextval('source_id_seq'::regclass) NOT NULL,
+    source text NOT NULL,
+    version debversion NOT NULL,
+    maintainer integer NOT NULL,
+    file integer NOT NULL,
+    sig_fpr integer,
+    install_date timestamp with time zone NOT NULL,
+    changedby integer NOT NULL,
+    dm_upload_allowed boolean DEFAULT false NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    stanza text
+);
+
+
+ALTER TABLE public.source OWNER TO dak;
+
+--
+-- Name: src_associations_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE src_associations_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.src_associations_id_seq OWNER TO dak;
+
+--
+-- Name: src_associations; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE src_associations (
+    id integer DEFAULT nextval('src_associations_id_seq'::regclass) NOT NULL,
+    suite integer NOT NULL,
+    source integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.src_associations OWNER TO dak;
+
+--
+-- Name: src_associations_bin; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW src_associations_bin AS
+    SELECT src_associations.id, src_associations.source, src_associations.suite, binaries.id AS bin, binaries.architecture FROM ((src_associations JOIN source ON ((src_associations.source = source.id))) JOIN binaries ON ((source.id = binaries.source)));
+
+
+ALTER TABLE public.src_associations_bin OWNER TO dak;
+
+--
+-- Name: almost_obsolete_all_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW almost_obsolete_all_associations AS
+    SELECT bin_associations_binaries.id, bin_associations_binaries.bin, bin_associations_binaries.package, bin_associations_binaries.version, bin_associations_binaries.suite FROM (bin_associations_binaries LEFT JOIN src_associations_bin USING (bin, suite, architecture)) WHERE ((src_associations_bin.source IS NULL) AND (bin_associations_binaries.architecture = 2));
+
+
+ALTER TABLE public.almost_obsolete_all_associations OWNER TO dak;
+
+--
+-- Name: any_associations_source; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW any_associations_source AS
+    SELECT bin_associations.id, bin_associations.suite, binaries.id AS bin, binaries.package, binaries.version AS binver, binaries.architecture, source.id AS src, source.source, source.version AS srcver FROM ((bin_associations JOIN binaries ON (((bin_associations.bin = binaries.id) AND (binaries.architecture <> 2)))) JOIN source ON ((binaries.source = source.id)));
+
+
+ALTER TABLE public.any_associations_source OWNER TO dak;
+
+--
+-- Name: src_associations_src; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW src_associations_src AS
+    SELECT src_associations.id, src_associations.suite, source.id AS src, source.source, source.version FROM (src_associations JOIN source ON ((src_associations.source = source.id)));
+
+
+ALTER TABLE public.src_associations_src OWNER TO dak;
+
+--
+-- Name: almost_obsolete_src_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW almost_obsolete_src_associations AS
+    SELECT src_associations_src.id, src_associations_src.src, src_associations_src.source, src_associations_src.version, src_associations_src.suite FROM (src_associations_src LEFT JOIN any_associations_source USING (src, suite)) WHERE (any_associations_source.bin IS NULL);
+
+
+ALTER TABLE public.almost_obsolete_src_associations OWNER TO dak;
+
+--
+-- Name: architecture_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE architecture_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.architecture_id_seq OWNER TO dak;
+
+--
+-- Name: architecture; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE architecture (
+    id integer DEFAULT nextval('architecture_id_seq'::regclass) NOT NULL,
+    arch_string text NOT NULL,
+    description text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.architecture OWNER TO dak;
+
+--
+-- Name: archive_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE archive_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.archive_id_seq OWNER TO dak;
+
+--
+-- Name: archive; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE archive (
+    id integer DEFAULT nextval('archive_id_seq'::regclass) NOT NULL,
+    name text NOT NULL,
+    origin_server text,
+    description text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    primary_mirror text
+);
+
+
+ALTER TABLE public.archive OWNER TO dak;
+
+--
+-- Name: bin_contents; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE bin_contents (
+    file text NOT NULL,
+    binary_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.bin_contents OWNER TO dak;
+
+--
+-- Name: binaries_metadata; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE binaries_metadata (
+    bin_id integer NOT NULL,
+    key_id integer NOT NULL,
+    value text NOT NULL
+);
+
+
+ALTER TABLE public.binaries_metadata OWNER TO dak;
+
+--
+-- Name: suite_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE suite_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.suite_id_seq OWNER TO dak;
+
+--
+-- Name: suite; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE suite (
+    id integer DEFAULT nextval('suite_id_seq'::regclass) NOT NULL,
+    suite_name text NOT NULL,
+    version text,
+    origin text,
+    label text,
+    description text,
+    untouchable boolean DEFAULT false NOT NULL,
+    codename text,
+    overridecodename text,
+    validtime integer DEFAULT 604800 NOT NULL,
+    priority integer DEFAULT 0 NOT NULL,
+    notautomatic boolean DEFAULT false NOT NULL,
+    copychanges text,
+    overridesuite text,
+    policy_queue_id integer,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    changelog text,
+    butautomaticupgrades boolean DEFAULT false NOT NULL,
+    signingkeys text[],
+    announce text[],
+    CONSTRAINT bau_needs_na_set CHECK (((NOT butautomaticupgrades) OR notautomatic))
+);
+
+
+ALTER TABLE public.suite OWNER TO dak;
+
+--
+-- Name: binaries_suite_arch; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW binaries_suite_arch AS
+    SELECT bin_associations.id, binaries.id AS bin, binaries.package, binaries.version, binaries.source, bin_associations.suite, suite.suite_name, binaries.architecture, architecture.arch_string FROM (((binaries JOIN bin_associations ON ((binaries.id = bin_associations.bin))) JOIN suite ON ((suite.id = bin_associations.suite))) JOIN architecture ON ((binaries.architecture = architecture.id)));
+
+
+ALTER TABLE public.binaries_suite_arch OWNER TO dak;
+
+--
+-- Name: binary_acl; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE binary_acl (
+    id integer NOT NULL,
+    access_level text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.binary_acl OWNER TO dak;
+
+--
+-- Name: binary_acl_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE binary_acl_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.binary_acl_id_seq OWNER TO dak;
+
+--
+-- Name: binary_acl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE binary_acl_id_seq OWNED BY binary_acl.id;
+
+
+--
+-- Name: binary_acl_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE binary_acl_map (
+    id integer NOT NULL,
+    fingerprint_id integer NOT NULL,
+    architecture_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.binary_acl_map OWNER TO dak;
+
+--
+-- Name: binary_acl_map_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE binary_acl_map_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.binary_acl_map_id_seq OWNER TO dak;
+
+--
+-- Name: binary_acl_map_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE binary_acl_map_id_seq OWNED BY binary_acl_map.id;
+
+
+--
+-- Name: files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE files_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.files_id_seq OWNER TO dak;
+
+--
+-- Name: files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE files (
+    id integer DEFAULT nextval('files_id_seq'::regclass) NOT NULL,
+    filename text NOT NULL,
+    size bigint NOT NULL,
+    md5sum text NOT NULL,
+    location integer NOT NULL,
+    last_used timestamp with time zone,
+    sha1sum text,
+    sha256sum text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.files OWNER TO dak;
+
+--
+-- Name: location_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE location_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.location_id_seq OWNER TO dak;
+
+--
+-- Name: location; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE location (
+    id integer DEFAULT nextval('location_id_seq'::regclass) NOT NULL,
+    path text NOT NULL,
+    component integer,
+    archive integer,
+    type text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.location OWNER TO dak;
+
+--
+-- Name: binfiles_suite_component_arch; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW binfiles_suite_component_arch AS
+    SELECT files.filename, binaries.type, location.path, location.component, bin_associations.suite, binaries.architecture FROM (((binaries JOIN bin_associations ON ((binaries.id = bin_associations.bin))) JOIN files ON ((binaries.file = files.id))) JOIN location ON ((files.location = location.id)));
+
+
+ALTER TABLE public.binfiles_suite_component_arch OWNER TO dak;
+
+--
+-- Name: build_queue; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE build_queue (
+    id integer NOT NULL,
+    queue_name text NOT NULL,
+    path text NOT NULL,
+    copy_files boolean DEFAULT false NOT NULL,
+    generate_metadata boolean DEFAULT false NOT NULL,
+    origin text,
+    label text,
+    releasedescription text,
+    signingkey text,
+    stay_of_execution integer DEFAULT 86400 NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    notautomatic boolean DEFAULT false NOT NULL,
+    CONSTRAINT build_queue_meta_sanity_check CHECK (((generate_metadata IS FALSE) OR (((origin IS NOT NULL) AND (label IS NOT NULL)) AND (releasedescription IS NOT NULL)))),
+    CONSTRAINT build_queue_stay_of_execution_check CHECK ((stay_of_execution >= 0))
+);
+
+
+ALTER TABLE public.build_queue OWNER TO dak;
+
+--
+-- Name: build_queue_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE build_queue_files (
+    id integer NOT NULL,
+    build_queue_id integer NOT NULL,
+    insertdate timestamp without time zone DEFAULT now() NOT NULL,
+    lastused timestamp without time zone,
+    filename text NOT NULL,
+    fileid integer,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.build_queue_files OWNER TO dak;
+
+--
+-- Name: build_queue_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE build_queue_files_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.build_queue_files_id_seq OWNER TO dak;
+
+--
+-- Name: build_queue_files_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE build_queue_files_id_seq OWNED BY build_queue_files.id;
+
+
+--
+-- Name: build_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE build_queue_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.build_queue_id_seq OWNER TO dak;
+
+--
+-- Name: build_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE build_queue_id_seq OWNED BY build_queue.id;
+
+
+--
+-- Name: build_queue_policy_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE build_queue_policy_files (
+    build_queue_id integer NOT NULL,
+    file_id integer NOT NULL,
+    filename text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    lastused timestamp without time zone
+);
+
+
+ALTER TABLE public.build_queue_policy_files OWNER TO dak;
+
+--
+-- Name: changelogs_text; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changelogs_text (
+    id integer NOT NULL,
+    changelog text
+);
+
+
+ALTER TABLE public.changelogs_text OWNER TO dak;
+
+--
+-- Name: changes; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes (
+    id integer NOT NULL,
+    changesname text NOT NULL,
+    seen timestamp with time zone DEFAULT now() NOT NULL,
+    source text NOT NULL,
+    binaries text NOT NULL,
+    architecture text NOT NULL,
+    version text NOT NULL,
+    distribution text NOT NULL,
+    urgency text NOT NULL,
+    maintainer text NOT NULL,
+    fingerprint text NOT NULL,
+    changedby text NOT NULL,
+    date text NOT NULL,
+    in_queue integer,
+    approved_for integer,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    changelog_id integer
+);
+
+
+ALTER TABLE public.changes OWNER TO dak;
+
+--
+-- Name: changelogs; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW changelogs AS
+    SELECT cl.id, c.source, (c.version)::debversion AS version, c.architecture, cl.changelog, c.distribution FROM (changes c JOIN changelogs_text cl ON ((cl.id = c.changelog_id)));
+
+
+ALTER TABLE public.changelogs OWNER TO dak;
+
+--
+-- Name: changelogs_text_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE changelogs_text_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.changelogs_text_id_seq OWNER TO dak;
+
+--
+-- Name: changelogs_text_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE changelogs_text_id_seq OWNED BY changelogs_text.id;
+
+
+--
+-- Name: changes_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE changes_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.changes_id_seq OWNER TO dak;
+
+--
+-- Name: changes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE changes_id_seq OWNED BY changes.id;
+
+
+--
+-- Name: changes_pending_binaries; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pending_binaries (
+    id integer NOT NULL,
+    change_id integer NOT NULL,
+    package text NOT NULL,
+    version debversion NOT NULL,
+    architecture_id integer NOT NULL,
+    source_id integer,
+    pending_source_id integer,
+    pending_file_id integer,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    CONSTRAINT changes_pending_binaries_check CHECK (((source_id IS NOT NULL) OR (pending_source_id IS NOT NULL)))
+);
+
+
+ALTER TABLE public.changes_pending_binaries OWNER TO dak;
+
+--
+-- Name: changes_pending_binaries_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE changes_pending_binaries_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.changes_pending_binaries_id_seq OWNER TO dak;
+
+--
+-- Name: changes_pending_binaries_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE changes_pending_binaries_id_seq OWNED BY changes_pending_binaries.id;
+
+
+--
+-- Name: changes_pending_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pending_files (
+    id integer NOT NULL,
+    filename text NOT NULL,
+    size bigint NOT NULL,
+    md5sum text NOT NULL,
+    sha1sum text NOT NULL,
+    sha256sum text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    processed boolean DEFAULT false
+);
+
+
+ALTER TABLE public.changes_pending_files OWNER TO dak;
+
+--
+-- Name: changes_pending_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE changes_pending_files_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.changes_pending_files_id_seq OWNER TO dak;
+
+--
+-- Name: changes_pending_files_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE changes_pending_files_id_seq OWNED BY changes_pending_files.id;
+
+
+--
+-- Name: changes_pending_files_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pending_files_map (
+    file_id integer NOT NULL,
+    change_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.changes_pending_files_map OWNER TO dak;
+
+--
+-- Name: changes_pending_source; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pending_source (
+    id integer NOT NULL,
+    change_id integer NOT NULL,
+    source text NOT NULL,
+    version debversion NOT NULL,
+    maintainer_id integer NOT NULL,
+    changedby_id integer NOT NULL,
+    sig_fpr integer NOT NULL,
+    dm_upload_allowed boolean DEFAULT false NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.changes_pending_source OWNER TO dak;
+
+--
+-- Name: changes_pending_source_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pending_source_files (
+    pending_source_id integer NOT NULL,
+    pending_file_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.changes_pending_source_files OWNER TO dak;
+
+--
+-- Name: changes_pending_source_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE changes_pending_source_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.changes_pending_source_id_seq OWNER TO dak;
+
+--
+-- Name: changes_pending_source_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE changes_pending_source_id_seq OWNED BY changes_pending_source.id;
+
+
+--
+-- Name: changes_pool_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE changes_pool_files (
+    changeid integer NOT NULL,
+    fileid integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.changes_pool_files OWNER TO dak;
+
+--
+-- Name: component_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE component_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.component_id_seq OWNER TO dak;
+
+--
+-- Name: component; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE component (
+    id integer DEFAULT nextval('component_id_seq'::regclass) NOT NULL,
+    name text NOT NULL,
+    description text,
+    meets_dfsg boolean,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.component OWNER TO dak;
+
+--
+-- Name: config; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE config (
+    id integer NOT NULL,
+    name text NOT NULL,
+    value text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.config OWNER TO dak;
+
+--
+-- Name: config_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE config_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.config_id_seq OWNER TO dak;
+
+--
+-- Name: config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE config_id_seq OWNED BY config.id;
+
+
+--
+-- Name: dsc_files_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE dsc_files_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.dsc_files_id_seq OWNER TO dak;
+
+--
+-- Name: dsc_files; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE dsc_files (
+    id integer DEFAULT nextval('dsc_files_id_seq'::regclass) NOT NULL,
+    source integer NOT NULL,
+    file integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.dsc_files OWNER TO dak;
+
+--
+-- Name: external_overrides; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE external_overrides (
+    package text NOT NULL,
+    key text NOT NULL,
+    value text NOT NULL,
+    suite integer NOT NULL,
+    component integer NOT NULL
+);
+
+
+ALTER TABLE public.external_overrides OWNER TO dak;
+
+--
+-- Name: extra_src_references; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE extra_src_references (
+    bin_id integer NOT NULL,
+    src_id integer NOT NULL
+);
+
+
+ALTER TABLE public.extra_src_references OWNER TO dak;
+
+--
+-- Name: file_arch_suite; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW file_arch_suite AS
+    SELECT f.id AS file, f.size, b.architecture, s.id AS suite FROM files f, binaries b, bin_associations ba, suite s WHERE (((f.id = b.file) AND (b.id = ba.bin)) AND (ba.suite = s.id));
+
+
+ALTER TABLE public.file_arch_suite OWNER TO dak;
+
+--
+-- Name: fingerprint_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE fingerprint_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.fingerprint_id_seq OWNER TO dak;
+
+--
+-- Name: fingerprint; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE fingerprint (
+    id integer DEFAULT nextval('fingerprint_id_seq'::regclass) NOT NULL,
+    fingerprint text NOT NULL,
+    uid integer,
+    keyring integer,
+    source_acl_id integer,
+    binary_acl_id integer,
+    binary_reject boolean DEFAULT true NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.fingerprint OWNER TO dak;
+
+--
+-- Name: keyring_acl_map; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE keyring_acl_map (
+    id integer NOT NULL,
+    keyring_id integer NOT NULL,
+    architecture_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.keyring_acl_map OWNER TO dak;
+
+--
+-- Name: keyring_acl_map_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE keyring_acl_map_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.keyring_acl_map_id_seq OWNER TO dak;
+
+--
+-- Name: keyring_acl_map_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE keyring_acl_map_id_seq OWNED BY keyring_acl_map.id;
+
+
+--
+-- Name: keyrings; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE keyrings (
+    id integer NOT NULL,
+    name text NOT NULL,
+    default_source_acl_id integer,
+    default_binary_acl_id integer,
+    default_binary_reject boolean DEFAULT true NOT NULL,
+    priority integer DEFAULT 100 NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    active boolean DEFAULT true
+);
+
+
+ALTER TABLE public.keyrings OWNER TO dak;
+
+--
+-- Name: keyrings_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE keyrings_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.keyrings_id_seq OWNER TO dak;
+
+--
+-- Name: keyrings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE keyrings_id_seq OWNED BY keyrings.id;
+
+
+--
+-- Name: maintainer_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE maintainer_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.maintainer_id_seq OWNER TO dak;
+
+--
+-- Name: maintainer; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE maintainer (
+    id integer DEFAULT nextval('maintainer_id_seq'::regclass) NOT NULL,
+    name text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.maintainer OWNER TO dak;
+
+--
+-- Name: metadata_keys; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE metadata_keys (
+    key_id integer NOT NULL,
+    key text NOT NULL,
+    ordering integer DEFAULT 0 NOT NULL
+);
+
+
+ALTER TABLE public.metadata_keys OWNER TO dak;
+
+--
+-- Name: metadata_keys_key_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE metadata_keys_key_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.metadata_keys_key_id_seq OWNER TO dak;
+
+--
+-- Name: metadata_keys_key_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE metadata_keys_key_id_seq OWNED BY metadata_keys.key_id;
+
+
+--
+-- Name: new_comments; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE new_comments (
+    id integer NOT NULL,
+    package text NOT NULL,
+    version text NOT NULL,
+    comment text NOT NULL,
+    author text NOT NULL,
+    notedate timestamp with time zone DEFAULT now() NOT NULL,
+    trainee boolean DEFAULT false NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.new_comments OWNER TO dak;
+
+--
+-- Name: new_comments_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE new_comments_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.new_comments_id_seq OWNER TO dak;
+
+--
+-- Name: new_comments_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE new_comments_id_seq OWNED BY new_comments.id;
+
+
+--
+-- Name: newest_all_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW newest_all_associations AS
+    SELECT binaries_suite_arch.package, max(binaries_suite_arch.version) AS version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM binaries_suite_arch WHERE (binaries_suite_arch.architecture = 2) GROUP BY binaries_suite_arch.package, binaries_suite_arch.suite, binaries_suite_arch.architecture;
+
+
+ALTER TABLE public.newest_all_associations OWNER TO dak;
+
+--
+-- Name: newest_any_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW newest_any_associations AS
+    SELECT binaries_suite_arch.package, max(binaries_suite_arch.version) AS version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM binaries_suite_arch WHERE (binaries_suite_arch.architecture > 2) GROUP BY binaries_suite_arch.package, binaries_suite_arch.suite, binaries_suite_arch.architecture;
+
+
+ALTER TABLE public.newest_any_associations OWNER TO dak;
+
+--
+-- Name: source_suite; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW source_suite AS
+    SELECT src_associations.id, source.id AS src, source.source, source.version, src_associations.suite, suite.suite_name, source.install_date FROM ((source JOIN src_associations ON ((source.id = src_associations.source))) JOIN suite ON ((suite.id = src_associations.suite)));
+
+
+ALTER TABLE public.source_suite OWNER TO dak;
+
+--
+-- Name: newest_source; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW newest_source AS
+    SELECT source_suite.source, max(source_suite.version) AS version, source_suite.suite FROM source_suite GROUP BY source_suite.source, source_suite.suite;
+
+
+ALTER TABLE public.newest_source OWNER TO dak;
+
+--
+-- Name: newest_src_association; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW newest_src_association AS
+    SELECT source_suite.id, source_suite.src, source_suite.source, source_suite.version, source_suite.suite FROM (source_suite JOIN newest_source USING (source, version, suite));
+
+
+ALTER TABLE public.newest_src_association OWNER TO dak;
+
+--
+-- Name: obsolete_all_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW obsolete_all_associations AS
+    SELECT almost.id, almost.bin, almost.package, almost.version, almost.suite FROM (almost_obsolete_all_associations almost JOIN newest_all_associations newest ON ((((almost.package = newest.package) AND (almost.version < newest.version)) AND (almost.suite = newest.suite))));
+
+
+ALTER TABLE public.obsolete_all_associations OWNER TO dak;
+
+--
+-- Name: obsolete_any_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW obsolete_any_associations AS
+    SELECT binaries_suite_arch.id, binaries_suite_arch.architecture, binaries_suite_arch.version, binaries_suite_arch.package, binaries_suite_arch.suite FROM (binaries_suite_arch JOIN newest_any_associations ON (((((binaries_suite_arch.architecture = newest_any_associations.architecture) AND (binaries_suite_arch.package = newest_any_associations.package)) AND (binaries_suite_arch.suite = newest_any_associations.suite)) AND (binaries_suite_arch.version <> newest_any_associations.version))));
+
+
+ALTER TABLE public.obsolete_any_associations OWNER TO dak;
+
+--
+-- Name: obsolete_any_by_all_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW obsolete_any_by_all_associations AS
+    SELECT binaries_suite_arch.id, binaries_suite_arch.package, binaries_suite_arch.version, binaries_suite_arch.suite, binaries_suite_arch.architecture FROM (binaries_suite_arch JOIN newest_all_associations ON (((((binaries_suite_arch.package = newest_all_associations.package) AND (binaries_suite_arch.version < newest_all_associations.version)) AND (binaries_suite_arch.suite = newest_all_associations.suite)) AND (binaries_suite_arch.architecture > 2))));
+
+
+ALTER TABLE public.obsolete_any_by_all_associations OWNER TO dak;
+
+--
+-- Name: obsolete_src_associations; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW obsolete_src_associations AS
+    SELECT almost.id, almost.src, almost.source, almost.version, almost.suite FROM (almost_obsolete_src_associations almost JOIN newest_src_association newest ON ((((almost.source = newest.source) AND (almost.version < newest.version)) AND (almost.suite = newest.suite))));
+
+
+ALTER TABLE public.obsolete_src_associations OWNER TO dak;
+
+--
+-- Name: override; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE override (
+    package text NOT NULL,
+    suite integer NOT NULL,
+    component integer NOT NULL,
+    priority integer,
+    section integer NOT NULL,
+    type integer NOT NULL,
+    maintainer text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.override OWNER TO dak;
+
+--
+-- Name: override_type_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE override_type_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.override_type_id_seq OWNER TO dak;
+
+--
+-- Name: override_type; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE override_type (
+    id integer DEFAULT nextval('override_type_id_seq'::regclass) NOT NULL,
+    type text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.override_type OWNER TO dak;
+
+--
+-- Name: policy_queue; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE policy_queue (
+    id integer NOT NULL,
+    queue_name text NOT NULL,
+    path text NOT NULL,
+    perms character(4) DEFAULT '0660'::bpchar NOT NULL,
+    change_perms character(4) DEFAULT '0660'::bpchar NOT NULL,
+    generate_metadata boolean DEFAULT false NOT NULL,
+    origin text,
+    label text,
+    releasedescription text,
+    signingkey text,
+    stay_of_execution integer DEFAULT 86400 NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    send_to_build_queues boolean DEFAULT false NOT NULL,
+    CONSTRAINT policy_queue_change_perms_check CHECK ((change_perms ~ similar_escape('[0-7][0-7][0-7][0-7]'::text, NULL::text))),
+    CONSTRAINT policy_queue_meta_sanity_check CHECK (((generate_metadata IS FALSE) OR (((origin IS NOT NULL) AND (label IS NOT NULL)) AND (releasedescription IS NOT NULL)))),
+    CONSTRAINT policy_queue_perms_check CHECK ((perms ~ similar_escape('[0-7][0-7][0-7][0-7]'::text, NULL::text))),
+    CONSTRAINT policy_queue_stay_of_execution_check CHECK ((stay_of_execution >= 0))
+);
+
+
+ALTER TABLE public.policy_queue OWNER TO dak;
+
+--
+-- Name: policy_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE policy_queue_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.policy_queue_id_seq OWNER TO dak;
+
+--
+-- Name: policy_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE policy_queue_id_seq OWNED BY policy_queue.id;
+
+
+--
+-- Name: priority_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE priority_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.priority_id_seq OWNER TO dak;
+
+--
+-- Name: priority; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE priority (
+    id integer DEFAULT nextval('priority_id_seq'::regclass) NOT NULL,
+    priority text NOT NULL,
+    level integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.priority OWNER TO dak;
+
+--
+-- Name: section_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE section_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    MAXVALUE 2147483647
+    CACHE 1;
+
+
+ALTER TABLE public.section_id_seq OWNER TO dak;
+
+--
+-- Name: section; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE section (
+    id integer DEFAULT nextval('section_id_seq'::regclass) NOT NULL,
+    section text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.section OWNER TO dak;
+
+--
+-- Name: source_acl; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE source_acl (
+    id integer NOT NULL,
+    access_level text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.source_acl OWNER TO dak;
+
+--
+-- Name: source_acl_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE source_acl_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.source_acl_id_seq OWNER TO dak;
+
+--
+-- Name: source_acl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE source_acl_id_seq OWNED BY source_acl.id;
+
+
+--
+-- Name: source_metadata; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE source_metadata (
+    src_id integer NOT NULL,
+    key_id integer NOT NULL,
+    value text NOT NULL
+);
+
+
+ALTER TABLE public.source_metadata OWNER TO dak;
+
+--
+-- Name: src_contents; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE src_contents (
+    file text NOT NULL,
+    source_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.src_contents OWNER TO dak;
+
+--
+-- Name: src_format; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE src_format (
+    id integer NOT NULL,
+    format_name text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.src_format OWNER TO dak;
+
+--
+-- Name: src_format_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE src_format_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.src_format_id_seq OWNER TO dak;
+
+--
+-- Name: src_format_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE src_format_id_seq OWNED BY src_format.id;
+
+
+--
+-- Name: src_uploaders; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE src_uploaders (
+    id integer NOT NULL,
+    source integer NOT NULL,
+    maintainer integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.src_uploaders OWNER TO dak;
+
+--
+-- Name: src_uploaders_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE src_uploaders_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.src_uploaders_id_seq OWNER TO dak;
+
+--
+-- Name: src_uploaders_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE src_uploaders_id_seq OWNED BY src_uploaders.id;
+
+
+--
+-- Name: suite_architectures; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE suite_architectures (
+    suite integer NOT NULL,
+    architecture integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.suite_architectures OWNER TO dak;
+
+--
+-- Name: suite_arch_by_name; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW suite_arch_by_name AS
+    SELECT suite.suite_name AS suite, a.arch_string AS arch FROM ((suite_architectures sa JOIN architecture a ON ((sa.architecture = a.id))) JOIN suite ON ((sa.suite = suite.id))) WHERE (a.arch_string <> ALL (ARRAY['all'::text, 'source'::text]));
+
+
+ALTER TABLE public.suite_arch_by_name OWNER TO dak;
+
+--
+-- Name: suite_build_queue_copy; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE suite_build_queue_copy (
+    suite integer NOT NULL,
+    build_queue_id integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.suite_build_queue_copy OWNER TO dak;
+
+--
+-- Name: suite_src_formats; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE suite_src_formats (
+    suite integer NOT NULL,
+    src_format integer NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.suite_src_formats OWNER TO dak;
+
+--
+-- Name: uid_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE uid_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.uid_id_seq OWNER TO dak;
+
+--
+-- Name: uid; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE uid (
+    id integer DEFAULT nextval('uid_id_seq'::regclass) NOT NULL,
+    uid text NOT NULL,
+    name text,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL
+);
+
+
+ALTER TABLE public.uid OWNER TO dak;
+
+--
+-- Name: upload_blocks; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE upload_blocks (
+    id integer NOT NULL,
+    source text NOT NULL,
+    version debversion,
+    fingerprint_id integer,
+    uid_id integer,
+    reason text NOT NULL,
+    created timestamp with time zone DEFAULT now() NOT NULL,
+    modified timestamp with time zone DEFAULT now() NOT NULL,
+    CONSTRAINT upload_blocks_check CHECK (((fingerprint_id IS NOT NULL) OR (uid_id IS NOT NULL)))
+);
+
+
+ALTER TABLE public.upload_blocks OWNER TO dak;
+
+--
+-- Name: upload_blocks_id_seq; Type: SEQUENCE; Schema: public; Owner: dak
+--
+
+CREATE SEQUENCE upload_blocks_id_seq
+    START WITH 1
+    INCREMENT BY 1
+    NO MINVALUE
+    NO MAXVALUE
+    CACHE 1;
+
+
+ALTER TABLE public.upload_blocks_id_seq OWNER TO dak;
+
+--
+-- Name: upload_blocks_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dak
+--
+
+ALTER SEQUENCE upload_blocks_id_seq OWNED BY upload_blocks.id;
+
+
+--
+-- Name: version_check; Type: TABLE; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE TABLE version_check (
+    suite integer NOT NULL,
+    "check" text NOT NULL,
+    reference integer NOT NULL,
+    CONSTRAINT version_check_check_check CHECK (("check" = ANY (ARRAY['Enhances'::text, 'MustBeNewerThan'::text, 'MustBeOlderThan'::text])))
+);
+
+
+ALTER TABLE public.version_check OWNER TO dak;
+
+--
+-- Name: version_checks; Type: VIEW; Schema: public; Owner: dak
+--
+
+CREATE VIEW version_checks AS
+    SELECT s.suite_name AS source_suite, v."check" AS condition, t.suite_name AS target_suite FROM ((suite s JOIN version_check v ON ((s.id = v.suite))) JOIN suite t ON ((v.reference = t.id))) ORDER BY s.suite_name, v."check", t.suite_name;
+
+
+ALTER TABLE public.version_checks OWNER TO dak;
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE binary_acl ALTER COLUMN id SET DEFAULT nextval('binary_acl_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE binary_acl_map ALTER COLUMN id SET DEFAULT nextval('binary_acl_map_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE build_queue ALTER COLUMN id SET DEFAULT nextval('build_queue_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE build_queue_files ALTER COLUMN id SET DEFAULT nextval('build_queue_files_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE changelogs_text ALTER COLUMN id SET DEFAULT nextval('changelogs_text_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE changes ALTER COLUMN id SET DEFAULT nextval('changes_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE changes_pending_binaries ALTER COLUMN id SET DEFAULT nextval('changes_pending_binaries_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE changes_pending_files ALTER COLUMN id SET DEFAULT nextval('changes_pending_files_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE changes_pending_source ALTER COLUMN id SET DEFAULT nextval('changes_pending_source_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE config ALTER COLUMN id SET DEFAULT nextval('config_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE keyring_acl_map ALTER COLUMN id SET DEFAULT nextval('keyring_acl_map_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE keyrings ALTER COLUMN id SET DEFAULT nextval('keyrings_id_seq'::regclass);
+
+
+--
+-- Name: key_id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE metadata_keys ALTER COLUMN key_id SET DEFAULT nextval('metadata_keys_key_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE new_comments ALTER COLUMN id SET DEFAULT nextval('new_comments_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE policy_queue ALTER COLUMN id SET DEFAULT nextval('policy_queue_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE source_acl ALTER COLUMN id SET DEFAULT nextval('source_acl_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE src_format ALTER COLUMN id SET DEFAULT nextval('src_format_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE src_uploaders ALTER COLUMN id SET DEFAULT nextval('src_uploaders_id_seq'::regclass);
+
+
+--
+-- Name: id; Type: DEFAULT; Schema: public; Owner: dak
+--
+
+ALTER TABLE upload_blocks ALTER COLUMN id SET DEFAULT nextval('upload_blocks_id_seq'::regclass);
+
+
+--
+-- Name: architecture_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY architecture
+    ADD CONSTRAINT architecture_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: archive_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY archive
+    ADD CONSTRAINT archive_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: bin_associations_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY bin_associations
+    ADD CONSTRAINT bin_associations_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: bin_contents_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY bin_contents
+    ADD CONSTRAINT bin_contents_pkey PRIMARY KEY (file, binary_id);
+
+
+--
+-- Name: binaries_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binaries_metadata
+    ADD CONSTRAINT binaries_metadata_pkey PRIMARY KEY (bin_id, key_id);
+
+
+--
+-- Name: binaries_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: binary_acl_access_level_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binary_acl
+    ADD CONSTRAINT binary_acl_access_level_key UNIQUE (access_level);
+
+
+--
+-- Name: binary_acl_map_fingerprint_id_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binary_acl_map
+    ADD CONSTRAINT binary_acl_map_fingerprint_id_key UNIQUE (fingerprint_id, architecture_id);
+
+
+--
+-- Name: binary_acl_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binary_acl_map
+    ADD CONSTRAINT binary_acl_map_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: binary_acl_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY binary_acl
+    ADD CONSTRAINT binary_acl_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: build_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY build_queue
+    ADD CONSTRAINT build_queue_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: build_queue_policy_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY build_queue_policy_files
+    ADD CONSTRAINT build_queue_policy_files_pkey PRIMARY KEY (build_queue_id, file_id);
+
+
+--
+-- Name: build_queue_queue_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY build_queue
+    ADD CONSTRAINT build_queue_queue_name_key UNIQUE (queue_name);
+
+
+--
+-- Name: changelogs_text_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changelogs_text
+    ADD CONSTRAINT changelogs_text_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: changes_pending_binaries_package_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_package_key UNIQUE (package, version, architecture_id);
+
+
+--
+-- Name: changes_pending_binaries_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: changes_pending_files_filename_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_files
+    ADD CONSTRAINT changes_pending_files_filename_key UNIQUE (filename);
+
+
+--
+-- Name: changes_pending_files_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_files_map
+    ADD CONSTRAINT changes_pending_files_map_pkey PRIMARY KEY (file_id, change_id);
+
+
+--
+-- Name: changes_pending_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_files
+    ADD CONSTRAINT changes_pending_files_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: changes_pending_source_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_source_files
+    ADD CONSTRAINT changes_pending_source_files_pkey PRIMARY KEY (pending_source_id, pending_file_id);
+
+
+--
+-- Name: changes_pending_source_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pending_source
+    ADD CONSTRAINT changes_pending_source_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: changes_pool_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes_pool_files
+    ADD CONSTRAINT changes_pool_files_pkey PRIMARY KEY (changeid, fileid);
+
+
+--
+-- Name: component_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY component
+    ADD CONSTRAINT component_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: config_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY config
+    ADD CONSTRAINT config_name_key UNIQUE (name);
+
+
+--
+-- Name: config_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY config
+    ADD CONSTRAINT config_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: dsc_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY dsc_files
+    ADD CONSTRAINT dsc_files_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: external_overrides_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY external_overrides
+    ADD CONSTRAINT external_overrides_pkey PRIMARY KEY (suite, component, package, key);
+
+
+--
+-- Name: extra_src_references_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY extra_src_references
+    ADD CONSTRAINT extra_src_references_pkey PRIMARY KEY (bin_id, src_id);
+
+
+--
+-- Name: files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY files
+    ADD CONSTRAINT files_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: fingerprint_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY fingerprint
+    ADD CONSTRAINT fingerprint_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: keyring_acl_map_keyring_id_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY keyring_acl_map
+    ADD CONSTRAINT keyring_acl_map_keyring_id_key UNIQUE (keyring_id, architecture_id);
+
+
+--
+-- Name: keyring_acl_map_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY keyring_acl_map
+    ADD CONSTRAINT keyring_acl_map_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: keyrings_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY keyrings
+    ADD CONSTRAINT keyrings_name_key UNIQUE (name);
+
+
+--
+-- Name: keyrings_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY keyrings
+    ADD CONSTRAINT keyrings_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: known_changes_changesname_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes
+    ADD CONSTRAINT known_changes_changesname_key UNIQUE (changesname);
+
+
+--
+-- Name: known_changes_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY changes
+    ADD CONSTRAINT known_changes_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: location_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY location
+    ADD CONSTRAINT location_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: maintainer_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY maintainer
+    ADD CONSTRAINT maintainer_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: metadata_keys_key_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY metadata_keys
+    ADD CONSTRAINT metadata_keys_key_key UNIQUE (key);
+
+
+--
+-- Name: metadata_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY metadata_keys
+    ADD CONSTRAINT metadata_keys_pkey PRIMARY KEY (key_id);
+
+
+--
+-- Name: new_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY new_comments
+    ADD CONSTRAINT new_comments_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: override_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_pkey PRIMARY KEY (suite, component, package, type);
+
+
+--
+-- Name: override_type_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY override_type
+    ADD CONSTRAINT override_type_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: policy_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY policy_queue
+    ADD CONSTRAINT policy_queue_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: policy_queue_queue_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY policy_queue
+    ADD CONSTRAINT policy_queue_queue_name_key UNIQUE (queue_name);
+
+
+--
+-- Name: priority_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY priority
+    ADD CONSTRAINT priority_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: queue_files_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY build_queue_files
+    ADD CONSTRAINT queue_files_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: section_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY section
+    ADD CONSTRAINT section_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: source_acl_access_level_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY source_acl
+    ADD CONSTRAINT source_acl_access_level_key UNIQUE (access_level);
+
+
+--
+-- Name: source_acl_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY source_acl
+    ADD CONSTRAINT source_acl_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: source_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY source_metadata
+    ADD CONSTRAINT source_metadata_pkey PRIMARY KEY (src_id, key_id);
+
+
+--
+-- Name: source_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY source
+    ADD CONSTRAINT source_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: src_associations_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_associations
+    ADD CONSTRAINT src_associations_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: src_contents_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_contents
+    ADD CONSTRAINT src_contents_pkey PRIMARY KEY (file, source_id);
+
+
+--
+-- Name: src_format_format_name_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_format
+    ADD CONSTRAINT src_format_format_name_key UNIQUE (format_name);
+
+
+--
+-- Name: src_format_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_format
+    ADD CONSTRAINT src_format_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: src_uploaders_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_uploaders
+    ADD CONSTRAINT src_uploaders_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: src_uploaders_source_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY src_uploaders
+    ADD CONSTRAINT src_uploaders_source_key UNIQUE (source, maintainer);
+
+
+--
+-- Name: suite_architectures_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite_architectures
+    ADD CONSTRAINT suite_architectures_pkey PRIMARY KEY (suite, architecture);
+
+
+--
+-- Name: suite_name_unique; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite
+    ADD CONSTRAINT suite_name_unique UNIQUE (suite_name);
+
+
+--
+-- Name: suite_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite
+    ADD CONSTRAINT suite_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: suite_queue_copy_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite_build_queue_copy
+    ADD CONSTRAINT suite_queue_copy_pkey PRIMARY KEY (suite, build_queue_id);
+
+
+--
+-- Name: suite_src_formats_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite_src_formats
+    ADD CONSTRAINT suite_src_formats_pkey PRIMARY KEY (suite, src_format);
+
+
+--
+-- Name: suite_src_formats_suite_key; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY suite_src_formats
+    ADD CONSTRAINT suite_src_formats_suite_key UNIQUE (suite, src_format);
+
+
+--
+-- Name: uid_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY uid
+    ADD CONSTRAINT uid_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: upload_blocks_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY upload_blocks
+    ADD CONSTRAINT upload_blocks_pkey PRIMARY KEY (id);
+
+
+--
+-- Name: version_check_pkey; Type: CONSTRAINT; Schema: public; Owner: dak; Tablespace: 
+--
+
+ALTER TABLE ONLY version_check
+    ADD CONSTRAINT version_check_pkey PRIMARY KEY (suite, "check", reference);
+
+
+--
+-- Name: architecture_arch_string_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX architecture_arch_string_key ON architecture USING btree (arch_string);
+
+
+--
+-- Name: archive_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX archive_name_key ON archive USING btree (name);
+
+
+--
+-- Name: bin_associations_bin; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX bin_associations_bin ON bin_associations USING btree (bin);
+
+
+--
+-- Name: bin_associations_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX bin_associations_suite_key ON bin_associations USING btree (suite, bin);
+
+
+--
+-- Name: binaries_architecture_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX binaries_architecture_idx ON binaries USING btree (architecture);
+
+
+--
+-- Name: binaries_by_package; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX binaries_by_package ON binaries USING btree (id, package);
+
+
+--
+-- Name: binaries_file_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX binaries_file_key ON binaries USING btree (file);
+
+
+--
+-- Name: binaries_files; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX binaries_files ON binaries USING btree (file);
+
+
+--
+-- Name: binaries_fingerprint; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX binaries_fingerprint ON binaries USING btree (sig_fpr);
+
+
+--
+-- Name: binaries_id; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX binaries_id ON binaries USING btree (id);
+
+
+--
+-- Name: binaries_maintainer; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX binaries_maintainer ON binaries USING btree (maintainer);
+
+
+--
+-- Name: binaries_package_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX binaries_package_key ON binaries USING btree (package, version, architecture);
+
+
+--
+-- Name: changesapproved_for; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesapproved_for ON changes USING btree (approved_for);
+
+
+--
+-- Name: changesdistribution_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesdistribution_ind ON changes USING btree (distribution);
+
+
+--
+-- Name: changesin_queue; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesin_queue ON changes USING btree (in_queue);
+
+
+--
+-- Name: changesin_queue_approved_for; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesin_queue_approved_for ON changes USING btree (in_queue, approved_for);
+
+
+--
+-- Name: changesname_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesname_ind ON changes USING btree (changesname);
+
+
+--
+-- Name: changessource_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changessource_ind ON changes USING btree (source);
+
+
+--
+-- Name: changestimestamp_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changestimestamp_ind ON changes USING btree (seen);
+
+
+--
+-- Name: changesurgency_ind; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX changesurgency_ind ON changes USING btree (urgency);
+
+
+--
+-- Name: component_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX component_name_key ON component USING btree (name);
+
+
+--
+-- Name: dsc_files_file; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX dsc_files_file ON dsc_files USING btree (file);
+
+
+--
+-- Name: dsc_files_source_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX dsc_files_source_key ON dsc_files USING btree (source, file);
+
+
+--
+-- Name: files_filename_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX files_filename_key ON files USING btree (filename, location);
+
+
+--
+-- Name: files_last_used; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX files_last_used ON files USING btree (last_used);
+
+
+--
+-- Name: fingerprint_fingerprint_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX fingerprint_fingerprint_key ON fingerprint USING btree (fingerprint);
+
+
+--
+-- Name: ind_bin_contents_binary; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX ind_bin_contents_binary ON bin_contents USING btree (binary_id);
+
+
+--
+-- Name: jjt; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt ON files USING btree (id);
+
+
+--
+-- Name: jjt2; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt2 ON files USING btree (location);
+
+
+--
+-- Name: jjt3; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt3 ON files USING btree (id, location);
+
+
+--
+-- Name: jjt4; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt4 ON binaries USING btree (source);
+
+
+--
+-- Name: jjt5; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt5 ON binaries USING btree (id, source);
+
+
+--
+-- Name: jjt_override_type_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX jjt_override_type_idx ON override USING btree (type);
+
+
+--
+-- Name: maintainer_name_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX maintainer_name_key ON maintainer USING btree (name);
+
+
+--
+-- Name: override_by_package; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX override_by_package ON override USING btree (package);
+
+
+--
+-- Name: override_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX override_suite_key ON override USING btree (suite, component, package, type);
+
+
+--
+-- Name: override_type_type_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX override_type_type_key ON override_type USING btree (type);
+
+
+--
+-- Name: priority_level_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX priority_level_key ON priority USING btree (level);
+
+
+--
+-- Name: priority_priority_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX priority_priority_key ON priority USING btree (priority);
+
+
+--
+-- Name: section_section_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX section_section_key ON section USING btree (section);
+
+
+--
+-- Name: source_file_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX source_file_key ON source USING btree (file);
+
+
+--
+-- Name: source_fingerprint; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX source_fingerprint ON source USING btree (sig_fpr);
+
+
+--
+-- Name: source_maintainer; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX source_maintainer ON source USING btree (maintainer);
+
+
+--
+-- Name: source_source_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX source_source_key ON source USING btree (source, version);
+
+
+--
+-- Name: src_associations_source; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX src_associations_source ON src_associations USING btree (source);
+
+
+--
+-- Name: src_associations_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX src_associations_suite_key ON src_associations USING btree (suite, source);
+
+
+--
+-- Name: src_contents_source_id_idx; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX src_contents_source_id_idx ON src_contents USING btree (source_id);
+
+
+--
+-- Name: suite_architectures_suite_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX suite_architectures_suite_key ON suite_architectures USING btree (suite, architecture);
+
+
+--
+-- Name: suite_hash; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE INDEX suite_hash ON suite USING hash (suite_name);
+
+
+--
+-- Name: uid_uid_key; Type: INDEX; Schema: public; Owner: dak; Tablespace: 
+--
+
+CREATE UNIQUE INDEX uid_uid_key ON uid USING btree (uid);
+
+
+--
+-- Name: modified_architecture; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_architecture BEFORE UPDATE ON architecture FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_archive; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_archive BEFORE UPDATE ON archive FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_bin_associations; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_bin_associations BEFORE UPDATE ON bin_associations FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_bin_contents; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_bin_contents BEFORE UPDATE ON bin_contents FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_binaries; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_binaries BEFORE UPDATE ON binaries FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_binary_acl; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_binary_acl BEFORE UPDATE ON binary_acl FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_binary_acl_map; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_binary_acl_map BEFORE UPDATE ON binary_acl_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_build_queue; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_build_queue BEFORE UPDATE ON build_queue FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_build_queue_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_build_queue_files BEFORE UPDATE ON build_queue_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes BEFORE UPDATE ON changes FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pending_binaries; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pending_binaries BEFORE UPDATE ON changes_pending_binaries FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pending_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pending_files BEFORE UPDATE ON changes_pending_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pending_files_map; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pending_files_map BEFORE UPDATE ON changes_pending_files_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pending_source; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pending_source BEFORE UPDATE ON changes_pending_source FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pending_source_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pending_source_files BEFORE UPDATE ON changes_pending_source_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_changes_pool_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_changes_pool_files BEFORE UPDATE ON changes_pool_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_component; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_component BEFORE UPDATE ON component FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_config; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_config BEFORE UPDATE ON config FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_dsc_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_dsc_files BEFORE UPDATE ON dsc_files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_files; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_files BEFORE UPDATE ON files FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_fingerprint; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_fingerprint BEFORE UPDATE ON fingerprint FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_keyring_acl_map; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_keyring_acl_map BEFORE UPDATE ON keyring_acl_map FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_keyrings; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_keyrings BEFORE UPDATE ON keyrings FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_location; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_location BEFORE UPDATE ON location FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_maintainer; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_maintainer BEFORE UPDATE ON maintainer FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_new_comments; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_new_comments BEFORE UPDATE ON new_comments FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_override; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_override BEFORE UPDATE ON override FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_override_type; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_override_type BEFORE UPDATE ON override_type FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_policy_queue; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_policy_queue BEFORE UPDATE ON policy_queue FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_priority; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_priority BEFORE UPDATE ON priority FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_section; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_section BEFORE UPDATE ON section FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_source; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_source BEFORE UPDATE ON source FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_source_acl; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_source_acl BEFORE UPDATE ON source_acl FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_src_associations; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_src_associations BEFORE UPDATE ON src_associations FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_src_contents; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_src_contents BEFORE UPDATE ON src_contents FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_src_format; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_src_format BEFORE UPDATE ON src_format FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_src_uploaders; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_src_uploaders BEFORE UPDATE ON src_uploaders FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_suite; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_suite BEFORE UPDATE ON suite FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_suite_architectures; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_suite_architectures BEFORE UPDATE ON suite_architectures FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_suite_build_queue_copy; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_suite_build_queue_copy BEFORE UPDATE ON suite_build_queue_copy FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_suite_src_formats; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_suite_src_formats BEFORE UPDATE ON suite_src_formats FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_uid; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_uid BEFORE UPDATE ON uid FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: modified_upload_blocks; Type: TRIGGER; Schema: public; Owner: dak
+--
+
+CREATE TRIGGER modified_upload_blocks BEFORE UPDATE ON upload_blocks FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified();
+
+
+--
+-- Name: $1; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY fingerprint
+    ADD CONSTRAINT "$1" FOREIGN KEY (keyring) REFERENCES keyrings(id);
+
+
+--
+-- Name: bin_associations_bin; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY bin_associations
+    ADD CONSTRAINT bin_associations_bin FOREIGN KEY (bin) REFERENCES binaries(id) MATCH FULL;
+
+
+--
+-- Name: bin_associations_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY bin_associations
+    ADD CONSTRAINT bin_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
+
+
+--
+-- Name: bin_contents_bin_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY bin_contents
+    ADD CONSTRAINT bin_contents_bin_fkey FOREIGN KEY (binary_id) REFERENCES binaries(id) ON DELETE CASCADE;
+
+
+--
+-- Name: binaries_architecture; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_architecture FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
+
+
+--
+-- Name: binaries_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
+
+
+--
+-- Name: binaries_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) MATCH FULL;
+
+
+--
+-- Name: binaries_metadata_bin_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries_metadata
+    ADD CONSTRAINT binaries_metadata_bin_id_fkey FOREIGN KEY (bin_id) REFERENCES binaries(id) ON DELETE CASCADE;
+
+
+--
+-- Name: binaries_metadata_key_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries_metadata
+    ADD CONSTRAINT binaries_metadata_key_id_fkey FOREIGN KEY (key_id) REFERENCES metadata_keys(key_id);
+
+
+--
+-- Name: binaries_sig_fpr; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
+
+
+--
+-- Name: binaries_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binaries
+    ADD CONSTRAINT binaries_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
+
+
+--
+-- Name: binary_acl_map_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binary_acl_map
+    ADD CONSTRAINT binary_acl_map_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
+
+
+--
+-- Name: binary_acl_map_fingerprint_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY binary_acl_map
+    ADD CONSTRAINT binary_acl_map_fingerprint_id_fkey FOREIGN KEY (fingerprint_id) REFERENCES fingerprint(id);
+
+
+--
+-- Name: build_queue_files_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY build_queue_files
+    ADD CONSTRAINT build_queue_files_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE CASCADE;
+
+
+--
+-- Name: build_queue_policy_files_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY build_queue_policy_files
+    ADD CONSTRAINT build_queue_policy_files_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE CASCADE;
+
+
+--
+-- Name: build_queue_policy_files_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY build_queue_policy_files
+    ADD CONSTRAINT build_queue_policy_files_file_id_fkey FOREIGN KEY (file_id) REFERENCES changes_pending_files(id) ON DELETE CASCADE;
+
+
+--
+-- Name: changes_pending_binaries_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
+
+
+--
+-- Name: changes_pending_binaries_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
+
+
+--
+-- Name: changes_pending_binaries_pending_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_pending_file_id_fkey FOREIGN KEY (pending_file_id) REFERENCES changes_pending_files(id);
+
+
+--
+-- Name: changes_pending_binaries_pending_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_pending_source_id_fkey FOREIGN KEY (pending_source_id) REFERENCES changes_pending_source(id);
+
+
+--
+-- Name: changes_pending_binaries_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_binaries
+    ADD CONSTRAINT changes_pending_binaries_source_id_fkey FOREIGN KEY (source_id) REFERENCES source(id);
+
+
+--
+-- Name: changes_pending_files_map_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_files_map
+    ADD CONSTRAINT changes_pending_files_map_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
+
+
+--
+-- Name: changes_pending_files_map_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_files_map
+    ADD CONSTRAINT changes_pending_files_map_file_id_fkey FOREIGN KEY (file_id) REFERENCES changes_pending_files(id);
+
+
+--
+-- Name: changes_pending_source_change_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source
+    ADD CONSTRAINT changes_pending_source_change_id_fkey FOREIGN KEY (change_id) REFERENCES changes(id);
+
+
+--
+-- Name: changes_pending_source_changedby_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source
+    ADD CONSTRAINT changes_pending_source_changedby_id_fkey FOREIGN KEY (changedby_id) REFERENCES maintainer(id);
+
+
+--
+-- Name: changes_pending_source_files_pending_file_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source_files
+    ADD CONSTRAINT changes_pending_source_files_pending_file_id_fkey FOREIGN KEY (pending_file_id) REFERENCES changes_pending_files(id);
+
+
+--
+-- Name: changes_pending_source_files_pending_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source_files
+    ADD CONSTRAINT changes_pending_source_files_pending_source_id_fkey FOREIGN KEY (pending_source_id) REFERENCES changes_pending_source(id);
+
+
+--
+-- Name: changes_pending_source_maintainer_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source
+    ADD CONSTRAINT changes_pending_source_maintainer_id_fkey FOREIGN KEY (maintainer_id) REFERENCES maintainer(id);
+
+
+--
+-- Name: changes_pending_source_sig_fpr_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pending_source
+    ADD CONSTRAINT changes_pending_source_sig_fpr_fkey FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id);
+
+
+--
+-- Name: changes_pool_files_changeid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pool_files
+    ADD CONSTRAINT changes_pool_files_changeid_fkey FOREIGN KEY (changeid) REFERENCES changes(id) ON DELETE CASCADE;
+
+
+--
+-- Name: changes_pool_files_fileid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes_pool_files
+    ADD CONSTRAINT changes_pool_files_fileid_fkey FOREIGN KEY (fileid) REFERENCES files(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: dsc_files_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY dsc_files
+    ADD CONSTRAINT dsc_files_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
+
+
+--
+-- Name: dsc_files_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY dsc_files
+    ADD CONSTRAINT dsc_files_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
+
+
+--
+-- Name: external_overrides_component_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY external_overrides
+    ADD CONSTRAINT external_overrides_component_fkey FOREIGN KEY (component) REFERENCES component(id);
+
+
+--
+-- Name: external_overrides_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY external_overrides
+    ADD CONSTRAINT external_overrides_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
+
+
+--
+-- Name: extra_src_references_bin_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY extra_src_references
+    ADD CONSTRAINT extra_src_references_bin_id_fkey FOREIGN KEY (bin_id) REFERENCES binaries(id) ON DELETE CASCADE;
+
+
+--
+-- Name: extra_src_references_src_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY extra_src_references
+    ADD CONSTRAINT extra_src_references_src_id_fkey FOREIGN KEY (src_id) REFERENCES source(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: files_location; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY files
+    ADD CONSTRAINT files_location FOREIGN KEY (location) REFERENCES location(id) MATCH FULL;
+
+
+--
+-- Name: fingerprint_binary_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY fingerprint
+    ADD CONSTRAINT fingerprint_binary_acl_id_fkey FOREIGN KEY (binary_acl_id) REFERENCES binary_acl(id);
+
+
+--
+-- Name: fingerprint_source_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY fingerprint
+    ADD CONSTRAINT fingerprint_source_acl_id_fkey FOREIGN KEY (source_acl_id) REFERENCES source_acl(id);
+
+
+--
+-- Name: fingerprint_uid; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY fingerprint
+    ADD CONSTRAINT fingerprint_uid FOREIGN KEY (uid) REFERENCES uid(id) MATCH FULL;
+
+
+--
+-- Name: keyring_acl_map_architecture_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY keyring_acl_map
+    ADD CONSTRAINT keyring_acl_map_architecture_id_fkey FOREIGN KEY (architecture_id) REFERENCES architecture(id);
+
+
+--
+-- Name: keyring_acl_map_keyring_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY keyring_acl_map
+    ADD CONSTRAINT keyring_acl_map_keyring_id_fkey FOREIGN KEY (keyring_id) REFERENCES keyrings(id);
+
+
+--
+-- Name: keyrings_default_binary_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY keyrings
+    ADD CONSTRAINT keyrings_default_binary_acl_id_fkey FOREIGN KEY (default_binary_acl_id) REFERENCES binary_acl(id);
+
+
+--
+-- Name: keyrings_default_source_acl_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY keyrings
+    ADD CONSTRAINT keyrings_default_source_acl_id_fkey FOREIGN KEY (default_source_acl_id) REFERENCES source_acl(id);
+
+
+--
+-- Name: known_changes_approved_for_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes
+    ADD CONSTRAINT known_changes_approved_for_fkey FOREIGN KEY (in_queue) REFERENCES policy_queue(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: known_changes_in_queue_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY changes
+    ADD CONSTRAINT known_changes_in_queue_fkey FOREIGN KEY (in_queue) REFERENCES policy_queue(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: location_archive_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY location
+    ADD CONSTRAINT location_archive_fkey FOREIGN KEY (archive) REFERENCES archive(id);
+
+
+--
+-- Name: location_component_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY location
+    ADD CONSTRAINT location_component_fkey FOREIGN KEY (component) REFERENCES component(id);
+
+
+--
+-- Name: override_component; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_component FOREIGN KEY (component) REFERENCES component(id) MATCH FULL;
+
+
+--
+-- Name: override_priority; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_priority FOREIGN KEY (priority) REFERENCES priority(id) MATCH FULL;
+
+
+--
+-- Name: override_section; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_section FOREIGN KEY (section) REFERENCES section(id) MATCH FULL;
+
+
+--
+-- Name: override_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
+
+
+--
+-- Name: override_type; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY override
+    ADD CONSTRAINT override_type FOREIGN KEY (type) REFERENCES override_type(id) MATCH FULL;
+
+
+--
+-- Name: queue_files_fileid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY build_queue_files
+    ADD CONSTRAINT queue_files_fileid_fkey FOREIGN KEY (fileid) REFERENCES files(id) ON DELETE CASCADE;
+
+
+--
+-- Name: source_changedby; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source
+    ADD CONSTRAINT source_changedby FOREIGN KEY (changedby) REFERENCES maintainer(id) MATCH FULL;
+
+
+--
+-- Name: source_file; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source
+    ADD CONSTRAINT source_file FOREIGN KEY (file) REFERENCES files(id) MATCH FULL;
+
+
+--
+-- Name: source_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source
+    ADD CONSTRAINT source_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) MATCH FULL;
+
+
+--
+-- Name: source_metadata_key_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source_metadata
+    ADD CONSTRAINT source_metadata_key_id_fkey FOREIGN KEY (key_id) REFERENCES metadata_keys(key_id);
+
+
+--
+-- Name: source_metadata_src_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source_metadata
+    ADD CONSTRAINT source_metadata_src_id_fkey FOREIGN KEY (src_id) REFERENCES source(id) ON DELETE CASCADE;
+
+
+--
+-- Name: source_sig_fpr; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY source
+    ADD CONSTRAINT source_sig_fpr FOREIGN KEY (sig_fpr) REFERENCES fingerprint(id) MATCH FULL;
+
+
+--
+-- Name: src_associations_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY src_associations
+    ADD CONSTRAINT src_associations_source FOREIGN KEY (source) REFERENCES source(id) MATCH FULL;
+
+
+--
+-- Name: src_associations_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY src_associations
+    ADD CONSTRAINT src_associations_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
+
+
+--
+-- Name: src_contents_source_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY src_contents
+    ADD CONSTRAINT src_contents_source_id_fkey FOREIGN KEY (source_id) REFERENCES source(id) ON DELETE CASCADE;
+
+
+--
+-- Name: src_format_key; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_src_formats
+    ADD CONSTRAINT src_format_key FOREIGN KEY (src_format) REFERENCES src_format(id);
+
+
+--
+-- Name: src_uploaders_maintainer; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY src_uploaders
+    ADD CONSTRAINT src_uploaders_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) ON DELETE CASCADE;
+
+
+--
+-- Name: src_uploaders_source; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY src_uploaders
+    ADD CONSTRAINT src_uploaders_source FOREIGN KEY (source) REFERENCES source(id) ON DELETE CASCADE;
+
+
+--
+-- Name: suite_architectures_architectur; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_architectures
+    ADD CONSTRAINT suite_architectures_architectur FOREIGN KEY (architecture) REFERENCES architecture(id) MATCH FULL;
+
+
+--
+-- Name: suite_architectures_suite; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_architectures
+    ADD CONSTRAINT suite_architectures_suite FOREIGN KEY (suite) REFERENCES suite(id) MATCH FULL;
+
+
+--
+-- Name: suite_build_queue_copy_build_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_build_queue_copy
+    ADD CONSTRAINT suite_build_queue_copy_build_queue_id_fkey FOREIGN KEY (build_queue_id) REFERENCES build_queue(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: suite_key; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_src_formats
+    ADD CONSTRAINT suite_key FOREIGN KEY (suite) REFERENCES suite(id);
+
+
+--
+-- Name: suite_policy_queue_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite
+    ADD CONSTRAINT suite_policy_queue_fkey FOREIGN KEY (policy_queue_id) REFERENCES policy_queue(id) ON DELETE RESTRICT;
+
+
+--
+-- Name: suite_queue_copy_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY suite_build_queue_copy
+    ADD CONSTRAINT suite_queue_copy_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
+
+
+--
+-- Name: upload_blocks_fingerprint_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY upload_blocks
+    ADD CONSTRAINT upload_blocks_fingerprint_id_fkey FOREIGN KEY (fingerprint_id) REFERENCES fingerprint(id);
+
+
+--
+-- Name: upload_blocks_uid_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY upload_blocks
+    ADD CONSTRAINT upload_blocks_uid_id_fkey FOREIGN KEY (uid_id) REFERENCES uid(id);
+
+
+--
+-- Name: version_check_reference_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY version_check
+    ADD CONSTRAINT version_check_reference_fkey FOREIGN KEY (reference) REFERENCES suite(id);
+
+
+--
+-- Name: version_check_suite_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dak
+--
+
+ALTER TABLE ONLY version_check
+    ADD CONSTRAINT version_check_suite_fkey FOREIGN KEY (suite) REFERENCES suite(id);
+
+
+--
+-- Name: public; Type: ACL; Schema: -; Owner: postgres
+--
+
+REVOKE ALL ON SCHEMA public FROM PUBLIC;
+REVOKE ALL ON SCHEMA public FROM postgres;
+GRANT ALL ON SCHEMA public TO postgres;
+GRANT ALL ON SCHEMA public TO PUBLIC;
+
+
+--
+-- Name: bin_associations_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE bin_associations_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE bin_associations_id_seq FROM dak;
+GRANT ALL ON SEQUENCE bin_associations_id_seq TO dak;
+GRANT SELECT ON SEQUENCE bin_associations_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE bin_associations_id_seq TO ftpmaster;
+
+
+--
+-- Name: bin_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE bin_associations FROM PUBLIC;
+REVOKE ALL ON TABLE bin_associations FROM dak;
+GRANT ALL ON TABLE bin_associations TO dak;
+GRANT SELECT ON TABLE bin_associations TO PUBLIC;
+GRANT ALL ON TABLE bin_associations TO ftpmaster;
+GRANT DELETE ON TABLE bin_associations TO ftpteam;
+
+
+--
+-- Name: binaries_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE binaries_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE binaries_id_seq FROM dak;
+GRANT ALL ON SEQUENCE binaries_id_seq TO dak;
+GRANT SELECT ON SEQUENCE binaries_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE binaries_id_seq TO ftpmaster;
+
+
+--
+-- Name: binaries; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binaries FROM PUBLIC;
+REVOKE ALL ON TABLE binaries FROM dak;
+GRANT ALL ON TABLE binaries TO dak;
+GRANT SELECT ON TABLE binaries TO PUBLIC;
+GRANT ALL ON TABLE binaries TO ftpmaster;
+
+
+--
+-- Name: bin_associations_binaries; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE bin_associations_binaries FROM PUBLIC;
+REVOKE ALL ON TABLE bin_associations_binaries FROM dak;
+GRANT ALL ON TABLE bin_associations_binaries TO dak;
+GRANT SELECT ON TABLE bin_associations_binaries TO ftpmaster;
+GRANT SELECT ON TABLE bin_associations_binaries TO PUBLIC;
+
+
+--
+-- Name: source_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE source_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE source_id_seq FROM dak;
+GRANT ALL ON SEQUENCE source_id_seq TO dak;
+GRANT SELECT ON SEQUENCE source_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE source_id_seq TO ftpmaster;
+
+
+--
+-- Name: source; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE source FROM PUBLIC;
+REVOKE ALL ON TABLE source FROM dak;
+GRANT ALL ON TABLE source TO dak;
+GRANT SELECT ON TABLE source TO PUBLIC;
+GRANT ALL ON TABLE source TO ftpmaster;
+
+
+--
+-- Name: src_associations_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE src_associations_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE src_associations_id_seq FROM dak;
+GRANT ALL ON SEQUENCE src_associations_id_seq TO dak;
+GRANT SELECT ON SEQUENCE src_associations_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE src_associations_id_seq TO ftpmaster;
+
+
+--
+-- Name: src_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_associations FROM PUBLIC;
+REVOKE ALL ON TABLE src_associations FROM dak;
+GRANT ALL ON TABLE src_associations TO dak;
+GRANT SELECT ON TABLE src_associations TO PUBLIC;
+GRANT ALL ON TABLE src_associations TO ftpmaster;
+GRANT DELETE ON TABLE src_associations TO ftpteam;
+
+
+--
+-- Name: src_associations_bin; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_associations_bin FROM PUBLIC;
+REVOKE ALL ON TABLE src_associations_bin FROM dak;
+GRANT ALL ON TABLE src_associations_bin TO dak;
+GRANT SELECT ON TABLE src_associations_bin TO ftpmaster;
+GRANT SELECT ON TABLE src_associations_bin TO PUBLIC;
+
+
+--
+-- Name: almost_obsolete_all_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE almost_obsolete_all_associations FROM PUBLIC;
+REVOKE ALL ON TABLE almost_obsolete_all_associations FROM dak;
+GRANT ALL ON TABLE almost_obsolete_all_associations TO dak;
+GRANT SELECT ON TABLE almost_obsolete_all_associations TO ftpmaster;
+GRANT SELECT ON TABLE almost_obsolete_all_associations TO PUBLIC;
+
+
+--
+-- Name: any_associations_source; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE any_associations_source FROM PUBLIC;
+REVOKE ALL ON TABLE any_associations_source FROM dak;
+GRANT ALL ON TABLE any_associations_source TO dak;
+GRANT SELECT ON TABLE any_associations_source TO ftpmaster;
+GRANT SELECT ON TABLE any_associations_source TO PUBLIC;
+
+
+--
+-- Name: src_associations_src; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_associations_src FROM PUBLIC;
+REVOKE ALL ON TABLE src_associations_src FROM dak;
+GRANT ALL ON TABLE src_associations_src TO dak;
+GRANT SELECT ON TABLE src_associations_src TO ftpmaster;
+GRANT SELECT ON TABLE src_associations_src TO PUBLIC;
+
+
+--
+-- Name: almost_obsolete_src_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE almost_obsolete_src_associations FROM PUBLIC;
+REVOKE ALL ON TABLE almost_obsolete_src_associations FROM dak;
+GRANT ALL ON TABLE almost_obsolete_src_associations TO dak;
+GRANT SELECT ON TABLE almost_obsolete_src_associations TO ftpmaster;
+GRANT SELECT ON TABLE almost_obsolete_src_associations TO PUBLIC;
+
+
+--
+-- Name: architecture_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE architecture_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE architecture_id_seq FROM dak;
+GRANT ALL ON SEQUENCE architecture_id_seq TO dak;
+GRANT SELECT ON SEQUENCE architecture_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE architecture_id_seq TO ftpmaster;
+
+
+--
+-- Name: architecture; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE architecture FROM PUBLIC;
+REVOKE ALL ON TABLE architecture FROM dak;
+GRANT ALL ON TABLE architecture TO dak;
+GRANT SELECT ON TABLE architecture TO PUBLIC;
+GRANT ALL ON TABLE architecture TO ftpmaster;
+
+
+--
+-- Name: archive_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE archive_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE archive_id_seq FROM dak;
+GRANT ALL ON SEQUENCE archive_id_seq TO dak;
+GRANT SELECT ON SEQUENCE archive_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE archive_id_seq TO ftpmaster;
+
+
+--
+-- Name: archive; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE archive FROM PUBLIC;
+REVOKE ALL ON TABLE archive FROM dak;
+GRANT ALL ON TABLE archive TO dak;
+GRANT SELECT ON TABLE archive TO PUBLIC;
+GRANT ALL ON TABLE archive TO ftpmaster;
+
+
+--
+-- Name: bin_contents; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE bin_contents FROM PUBLIC;
+REVOKE ALL ON TABLE bin_contents FROM dak;
+GRANT ALL ON TABLE bin_contents TO dak;
+GRANT SELECT ON TABLE bin_contents TO PUBLIC;
+GRANT ALL ON TABLE bin_contents TO ftpmaster;
+
+
+--
+-- Name: binaries_metadata; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binaries_metadata FROM PUBLIC;
+REVOKE ALL ON TABLE binaries_metadata FROM dak;
+GRANT ALL ON TABLE binaries_metadata TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE binaries_metadata TO ftpmaster;
+GRANT SELECT ON TABLE binaries_metadata TO PUBLIC;
+
+
+--
+-- Name: suite_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE suite_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE suite_id_seq FROM dak;
+GRANT ALL ON SEQUENCE suite_id_seq TO dak;
+GRANT SELECT ON SEQUENCE suite_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE suite_id_seq TO ftpmaster;
+
+
+--
+-- Name: suite; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE suite FROM PUBLIC;
+REVOKE ALL ON TABLE suite FROM dak;
+GRANT ALL ON TABLE suite TO dak;
+GRANT SELECT ON TABLE suite TO PUBLIC;
+GRANT ALL ON TABLE suite TO ftpmaster;
+
+
+--
+-- Name: binaries_suite_arch; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binaries_suite_arch FROM PUBLIC;
+REVOKE ALL ON TABLE binaries_suite_arch FROM dak;
+GRANT ALL ON TABLE binaries_suite_arch TO dak;
+GRANT SELECT ON TABLE binaries_suite_arch TO ftpmaster;
+GRANT SELECT ON TABLE binaries_suite_arch TO PUBLIC;
+
+
+--
+-- Name: binary_acl; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binary_acl FROM PUBLIC;
+REVOKE ALL ON TABLE binary_acl FROM dak;
+GRANT ALL ON TABLE binary_acl TO dak;
+GRANT SELECT ON TABLE binary_acl TO PUBLIC;
+GRANT ALL ON TABLE binary_acl TO ftpmaster;
+
+
+--
+-- Name: binary_acl_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE binary_acl_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE binary_acl_id_seq FROM dak;
+GRANT ALL ON SEQUENCE binary_acl_id_seq TO dak;
+GRANT ALL ON SEQUENCE binary_acl_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE binary_acl_id_seq TO PUBLIC;
+
+
+--
+-- Name: binary_acl_map; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binary_acl_map FROM PUBLIC;
+REVOKE ALL ON TABLE binary_acl_map FROM dak;
+GRANT ALL ON TABLE binary_acl_map TO dak;
+GRANT SELECT ON TABLE binary_acl_map TO PUBLIC;
+GRANT ALL ON TABLE binary_acl_map TO ftpmaster;
+
+
+--
+-- Name: binary_acl_map_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE binary_acl_map_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE binary_acl_map_id_seq FROM dak;
+GRANT ALL ON SEQUENCE binary_acl_map_id_seq TO dak;
+GRANT ALL ON SEQUENCE binary_acl_map_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE binary_acl_map_id_seq TO PUBLIC;
+
+
+--
+-- Name: files_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE files_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE files_id_seq FROM dak;
+GRANT ALL ON SEQUENCE files_id_seq TO dak;
+GRANT SELECT ON SEQUENCE files_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE files_id_seq TO ftpmaster;
+
+
+--
+-- Name: files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE files FROM PUBLIC;
+REVOKE ALL ON TABLE files FROM dak;
+GRANT ALL ON TABLE files TO dak;
+GRANT SELECT ON TABLE files TO PUBLIC;
+GRANT ALL ON TABLE files TO ftpmaster;
+
+
+--
+-- Name: location_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE location_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE location_id_seq FROM dak;
+GRANT ALL ON SEQUENCE location_id_seq TO dak;
+GRANT SELECT ON SEQUENCE location_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE location_id_seq TO ftpmaster;
+
+
+--
+-- Name: location; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE location FROM PUBLIC;
+REVOKE ALL ON TABLE location FROM dak;
+GRANT ALL ON TABLE location TO dak;
+GRANT SELECT ON TABLE location TO PUBLIC;
+GRANT ALL ON TABLE location TO ftpmaster;
+
+
+--
+-- Name: binfiles_suite_component_arch; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE binfiles_suite_component_arch FROM PUBLIC;
+REVOKE ALL ON TABLE binfiles_suite_component_arch FROM dak;
+GRANT ALL ON TABLE binfiles_suite_component_arch TO dak;
+GRANT SELECT ON TABLE binfiles_suite_component_arch TO ftpmaster;
+GRANT SELECT ON TABLE binfiles_suite_component_arch TO PUBLIC;
+
+
+--
+-- Name: build_queue; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE build_queue FROM PUBLIC;
+REVOKE ALL ON TABLE build_queue FROM dak;
+GRANT ALL ON TABLE build_queue TO dak;
+GRANT SELECT ON TABLE build_queue TO PUBLIC;
+GRANT ALL ON TABLE build_queue TO ftpmaster;
+
+
+--
+-- Name: build_queue_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE build_queue_files FROM PUBLIC;
+REVOKE ALL ON TABLE build_queue_files FROM dak;
+GRANT ALL ON TABLE build_queue_files TO dak;
+GRANT SELECT ON TABLE build_queue_files TO PUBLIC;
+GRANT ALL ON TABLE build_queue_files TO ftpmaster;
+
+
+--
+-- Name: build_queue_files_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE build_queue_files_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE build_queue_files_id_seq FROM dak;
+GRANT ALL ON SEQUENCE build_queue_files_id_seq TO dak;
+GRANT ALL ON SEQUENCE build_queue_files_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE build_queue_files_id_seq TO PUBLIC;
+
+
+--
+-- Name: build_queue_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE build_queue_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE build_queue_id_seq FROM dak;
+GRANT ALL ON SEQUENCE build_queue_id_seq TO dak;
+GRANT ALL ON SEQUENCE build_queue_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE build_queue_id_seq TO PUBLIC;
+
+
+--
+-- Name: build_queue_policy_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE build_queue_policy_files FROM PUBLIC;
+REVOKE ALL ON TABLE build_queue_policy_files FROM dak;
+GRANT ALL ON TABLE build_queue_policy_files TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE build_queue_policy_files TO ftpmaster;
+GRANT SELECT ON TABLE build_queue_policy_files TO PUBLIC;
+
+
+--
+-- Name: changelogs_text; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changelogs_text FROM PUBLIC;
+REVOKE ALL ON TABLE changelogs_text FROM dak;
+GRANT ALL ON TABLE changelogs_text TO dak;
+GRANT SELECT ON TABLE changelogs_text TO PUBLIC;
+GRANT ALL ON TABLE changelogs_text TO ftpmaster;
+
+
+--
+-- Name: changes; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes FROM PUBLIC;
+REVOKE ALL ON TABLE changes FROM dak;
+GRANT ALL ON TABLE changes TO dak;
+GRANT ALL ON TABLE changes TO ftpmaster;
+GRANT SELECT ON TABLE changes TO PUBLIC;
+GRANT DELETE,UPDATE ON TABLE changes TO ftpteam;
+
+
+--
+-- Name: changelogs; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changelogs FROM PUBLIC;
+REVOKE ALL ON TABLE changelogs FROM dak;
+GRANT ALL ON TABLE changelogs TO dak;
+GRANT SELECT ON TABLE changelogs TO PUBLIC;
+GRANT ALL ON TABLE changelogs TO ftpmaster;
+
+
+--
+-- Name: changelogs_text_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE changelogs_text_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE changelogs_text_id_seq FROM dak;
+GRANT ALL ON SEQUENCE changelogs_text_id_seq TO dak;
+GRANT ALL ON SEQUENCE changelogs_text_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE changelogs_text_id_seq TO PUBLIC;
+
+
+--
+-- Name: changes_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE changes_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE changes_id_seq FROM dak;
+GRANT ALL ON SEQUENCE changes_id_seq TO dak;
+GRANT ALL ON SEQUENCE changes_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE changes_id_seq TO PUBLIC;
+
+
+--
+-- Name: changes_pending_binaries; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pending_binaries FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pending_binaries FROM dak;
+GRANT ALL ON TABLE changes_pending_binaries TO dak;
+GRANT SELECT ON TABLE changes_pending_binaries TO PUBLIC;
+GRANT ALL ON TABLE changes_pending_binaries TO ftpmaster;
+
+
+--
+-- Name: changes_pending_binaries_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE changes_pending_binaries_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE changes_pending_binaries_id_seq FROM dak;
+GRANT ALL ON SEQUENCE changes_pending_binaries_id_seq TO dak;
+GRANT ALL ON SEQUENCE changes_pending_binaries_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE changes_pending_binaries_id_seq TO PUBLIC;
+
+
+--
+-- Name: changes_pending_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pending_files FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pending_files FROM dak;
+GRANT ALL ON TABLE changes_pending_files TO dak;
+GRANT SELECT ON TABLE changes_pending_files TO PUBLIC;
+GRANT ALL ON TABLE changes_pending_files TO ftpmaster;
+GRANT DELETE ON TABLE changes_pending_files TO ftpteam;
+
+
+--
+-- Name: changes_pending_files_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE changes_pending_files_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE changes_pending_files_id_seq FROM dak;
+GRANT ALL ON SEQUENCE changes_pending_files_id_seq TO dak;
+GRANT ALL ON SEQUENCE changes_pending_files_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE changes_pending_files_id_seq TO PUBLIC;
+GRANT USAGE ON SEQUENCE changes_pending_files_id_seq TO ftpteam;
+
+
+--
+-- Name: changes_pending_files_map; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pending_files_map FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pending_files_map FROM dak;
+GRANT ALL ON TABLE changes_pending_files_map TO dak;
+GRANT SELECT,INSERT,DELETE ON TABLE changes_pending_files_map TO ftpteam;
+GRANT SELECT ON TABLE changes_pending_files_map TO PUBLIC;
+
+
+--
+-- Name: changes_pending_source; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pending_source FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pending_source FROM dak;
+GRANT ALL ON TABLE changes_pending_source TO dak;
+GRANT SELECT ON TABLE changes_pending_source TO PUBLIC;
+GRANT ALL ON TABLE changes_pending_source TO ftpmaster;
+
+
+--
+-- Name: changes_pending_source_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pending_source_files FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pending_source_files FROM dak;
+GRANT ALL ON TABLE changes_pending_source_files TO dak;
+GRANT SELECT ON TABLE changes_pending_source_files TO PUBLIC;
+GRANT ALL ON TABLE changes_pending_source_files TO ftpmaster;
+
+
+--
+-- Name: changes_pending_source_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE changes_pending_source_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE changes_pending_source_id_seq FROM dak;
+GRANT ALL ON SEQUENCE changes_pending_source_id_seq TO dak;
+GRANT ALL ON SEQUENCE changes_pending_source_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE changes_pending_source_id_seq TO PUBLIC;
+
+
+--
+-- Name: changes_pool_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE changes_pool_files FROM PUBLIC;
+REVOKE ALL ON TABLE changes_pool_files FROM dak;
+GRANT ALL ON TABLE changes_pool_files TO dak;
+GRANT SELECT ON TABLE changes_pool_files TO PUBLIC;
+GRANT ALL ON TABLE changes_pool_files TO ftpmaster;
+GRANT DELETE ON TABLE changes_pool_files TO ftpteam;
+
+
+--
+-- Name: component_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE component_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE component_id_seq FROM dak;
+GRANT ALL ON SEQUENCE component_id_seq TO dak;
+GRANT SELECT ON SEQUENCE component_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE component_id_seq TO ftpmaster;
+
+
+--
+-- Name: component; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE component FROM PUBLIC;
+REVOKE ALL ON TABLE component FROM dak;
+GRANT ALL ON TABLE component TO dak;
+GRANT SELECT ON TABLE component TO PUBLIC;
+GRANT ALL ON TABLE component TO ftpmaster;
+
+
+--
+-- Name: config; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE config FROM PUBLIC;
+REVOKE ALL ON TABLE config FROM dak;
+GRANT ALL ON TABLE config TO dak;
+GRANT ALL ON TABLE config TO ftpmaster;
+GRANT SELECT ON TABLE config TO ftpteam;
+GRANT SELECT ON TABLE config TO PUBLIC;
+
+
+--
+-- Name: config_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE config_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE config_id_seq FROM dak;
+GRANT ALL ON SEQUENCE config_id_seq TO dak;
+GRANT ALL ON SEQUENCE config_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE config_id_seq TO PUBLIC;
+
+
+--
+-- Name: dsc_files_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE dsc_files_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE dsc_files_id_seq FROM dak;
+GRANT ALL ON SEQUENCE dsc_files_id_seq TO dak;
+GRANT SELECT ON SEQUENCE dsc_files_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE dsc_files_id_seq TO ftpmaster;
+
+
+--
+-- Name: dsc_files; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE dsc_files FROM PUBLIC;
+REVOKE ALL ON TABLE dsc_files FROM dak;
+GRANT ALL ON TABLE dsc_files TO dak;
+GRANT SELECT ON TABLE dsc_files TO PUBLIC;
+GRANT ALL ON TABLE dsc_files TO ftpmaster;
+
+
+--
+-- Name: external_overrides; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE external_overrides FROM PUBLIC;
+REVOKE ALL ON TABLE external_overrides FROM dak;
+GRANT ALL ON TABLE external_overrides TO dak;
+GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE external_overrides TO ftpmaster;
+GRANT SELECT ON TABLE external_overrides TO PUBLIC;
+
+
+--
+-- Name: extra_src_references; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE extra_src_references FROM PUBLIC;
+REVOKE ALL ON TABLE extra_src_references FROM dak;
+GRANT ALL ON TABLE extra_src_references TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE extra_src_references TO ftpmaster;
+GRANT SELECT ON TABLE extra_src_references TO PUBLIC;
+
+
+--
+-- Name: file_arch_suite; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE file_arch_suite FROM PUBLIC;
+REVOKE ALL ON TABLE file_arch_suite FROM dak;
+GRANT ALL ON TABLE file_arch_suite TO dak;
+GRANT ALL ON TABLE file_arch_suite TO ftpmaster;
+GRANT SELECT ON TABLE file_arch_suite TO PUBLIC;
+
+
+--
+-- Name: fingerprint_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE fingerprint_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE fingerprint_id_seq FROM dak;
+GRANT ALL ON SEQUENCE fingerprint_id_seq TO dak;
+GRANT SELECT ON SEQUENCE fingerprint_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE fingerprint_id_seq TO ftpmaster;
+
+
+--
+-- Name: fingerprint; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE fingerprint FROM PUBLIC;
+REVOKE ALL ON TABLE fingerprint FROM dak;
+GRANT ALL ON TABLE fingerprint TO dak;
+GRANT SELECT ON TABLE fingerprint TO PUBLIC;
+GRANT ALL ON TABLE fingerprint TO ftpmaster;
+
+
+--
+-- Name: keyring_acl_map; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE keyring_acl_map FROM PUBLIC;
+REVOKE ALL ON TABLE keyring_acl_map FROM dak;
+GRANT ALL ON TABLE keyring_acl_map TO dak;
+GRANT SELECT ON TABLE keyring_acl_map TO PUBLIC;
+GRANT ALL ON TABLE keyring_acl_map TO ftpmaster;
+
+
+--
+-- Name: keyring_acl_map_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE keyring_acl_map_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE keyring_acl_map_id_seq FROM dak;
+GRANT ALL ON SEQUENCE keyring_acl_map_id_seq TO dak;
+GRANT ALL ON SEQUENCE keyring_acl_map_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE keyring_acl_map_id_seq TO PUBLIC;
+
+
+--
+-- Name: keyrings; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE keyrings FROM PUBLIC;
+REVOKE ALL ON TABLE keyrings FROM dak;
+GRANT ALL ON TABLE keyrings TO dak;
+GRANT SELECT ON TABLE keyrings TO PUBLIC;
+GRANT ALL ON TABLE keyrings TO ftpmaster;
+
+
+--
+-- Name: keyrings_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE keyrings_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE keyrings_id_seq FROM dak;
+GRANT ALL ON SEQUENCE keyrings_id_seq TO dak;
+GRANT SELECT ON SEQUENCE keyrings_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE keyrings_id_seq TO ftpmaster;
+
+
+--
+-- Name: maintainer_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE maintainer_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE maintainer_id_seq FROM dak;
+GRANT ALL ON SEQUENCE maintainer_id_seq TO dak;
+GRANT SELECT ON SEQUENCE maintainer_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE maintainer_id_seq TO ftpmaster;
+
+
+--
+-- Name: maintainer; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE maintainer FROM PUBLIC;
+REVOKE ALL ON TABLE maintainer FROM dak;
+GRANT ALL ON TABLE maintainer TO dak;
+GRANT SELECT ON TABLE maintainer TO PUBLIC;
+GRANT ALL ON TABLE maintainer TO ftpmaster;
+
+
+--
+-- Name: metadata_keys; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE metadata_keys FROM PUBLIC;
+REVOKE ALL ON TABLE metadata_keys FROM dak;
+GRANT ALL ON TABLE metadata_keys TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE metadata_keys TO ftpmaster;
+GRANT SELECT ON TABLE metadata_keys TO PUBLIC;
+
+
+--
+-- Name: metadata_keys_key_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE metadata_keys_key_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE metadata_keys_key_id_seq FROM dak;
+GRANT ALL ON SEQUENCE metadata_keys_key_id_seq TO dak;
+GRANT ALL ON SEQUENCE metadata_keys_key_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE metadata_keys_key_id_seq TO PUBLIC;
+
+
+--
+-- Name: new_comments; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE new_comments FROM PUBLIC;
+REVOKE ALL ON TABLE new_comments FROM dak;
+GRANT ALL ON TABLE new_comments TO dak;
+GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE new_comments TO ftptrainee;
+GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE new_comments TO ftpteam;
+GRANT ALL ON TABLE new_comments TO ftpmaster;
+
+
+--
+-- Name: new_comments_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE new_comments_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE new_comments_id_seq FROM dak;
+GRANT ALL ON SEQUENCE new_comments_id_seq TO dak;
+GRANT SELECT,UPDATE ON SEQUENCE new_comments_id_seq TO ftptrainee;
+GRANT SELECT,UPDATE ON SEQUENCE new_comments_id_seq TO ftpteam;
+GRANT ALL ON SEQUENCE new_comments_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE new_comments_id_seq TO PUBLIC;
+
+
+--
+-- Name: newest_all_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE newest_all_associations FROM PUBLIC;
+REVOKE ALL ON TABLE newest_all_associations FROM dak;
+GRANT ALL ON TABLE newest_all_associations TO dak;
+GRANT SELECT ON TABLE newest_all_associations TO ftpmaster;
+GRANT SELECT ON TABLE newest_all_associations TO PUBLIC;
+
+
+--
+-- Name: newest_any_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE newest_any_associations FROM PUBLIC;
+REVOKE ALL ON TABLE newest_any_associations FROM dak;
+GRANT ALL ON TABLE newest_any_associations TO dak;
+GRANT SELECT ON TABLE newest_any_associations TO ftpmaster;
+GRANT SELECT ON TABLE newest_any_associations TO PUBLIC;
+
+
+--
+-- Name: source_suite; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE source_suite FROM PUBLIC;
+REVOKE ALL ON TABLE source_suite FROM dak;
+GRANT ALL ON TABLE source_suite TO dak;
+GRANT SELECT ON TABLE source_suite TO ftpmaster;
+GRANT SELECT ON TABLE source_suite TO PUBLIC;
+
+
+--
+-- Name: newest_source; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE newest_source FROM PUBLIC;
+REVOKE ALL ON TABLE newest_source FROM dak;
+GRANT ALL ON TABLE newest_source TO dak;
+GRANT SELECT ON TABLE newest_source TO ftpmaster;
+GRANT SELECT ON TABLE newest_source TO PUBLIC;
+
+
+--
+-- Name: newest_src_association; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE newest_src_association FROM PUBLIC;
+REVOKE ALL ON TABLE newest_src_association FROM dak;
+GRANT ALL ON TABLE newest_src_association TO dak;
+GRANT SELECT ON TABLE newest_src_association TO ftpmaster;
+GRANT SELECT ON TABLE newest_src_association TO PUBLIC;
+
+
+--
+-- Name: obsolete_all_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE obsolete_all_associations FROM PUBLIC;
+REVOKE ALL ON TABLE obsolete_all_associations FROM dak;
+GRANT ALL ON TABLE obsolete_all_associations TO dak;
+GRANT SELECT ON TABLE obsolete_all_associations TO ftpmaster;
+GRANT SELECT ON TABLE obsolete_all_associations TO PUBLIC;
+
+
+--
+-- Name: obsolete_any_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE obsolete_any_associations FROM PUBLIC;
+REVOKE ALL ON TABLE obsolete_any_associations FROM dak;
+GRANT ALL ON TABLE obsolete_any_associations TO dak;
+GRANT SELECT ON TABLE obsolete_any_associations TO ftpmaster;
+GRANT SELECT ON TABLE obsolete_any_associations TO PUBLIC;
+
+
+--
+-- Name: obsolete_any_by_all_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE obsolete_any_by_all_associations FROM PUBLIC;
+REVOKE ALL ON TABLE obsolete_any_by_all_associations FROM dak;
+GRANT ALL ON TABLE obsolete_any_by_all_associations TO dak;
+GRANT SELECT ON TABLE obsolete_any_by_all_associations TO ftpmaster;
+GRANT SELECT ON TABLE obsolete_any_by_all_associations TO PUBLIC;
+
+
+--
+-- Name: obsolete_src_associations; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE obsolete_src_associations FROM PUBLIC;
+REVOKE ALL ON TABLE obsolete_src_associations FROM dak;
+GRANT ALL ON TABLE obsolete_src_associations TO dak;
+GRANT SELECT ON TABLE obsolete_src_associations TO ftpmaster;
+GRANT SELECT ON TABLE obsolete_src_associations TO PUBLIC;
+
+
+--
+-- Name: override; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE override FROM PUBLIC;
+REVOKE ALL ON TABLE override FROM dak;
+GRANT ALL ON TABLE override TO dak;
+GRANT SELECT ON TABLE override TO PUBLIC;
+GRANT ALL ON TABLE override TO ftpmaster;
+GRANT INSERT,DELETE,UPDATE ON TABLE override TO ftpteam;
+
+
+--
+-- Name: override_type_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE override_type_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE override_type_id_seq FROM dak;
+GRANT ALL ON SEQUENCE override_type_id_seq TO dak;
+GRANT SELECT ON SEQUENCE override_type_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE override_type_id_seq TO ftpmaster;
+
+
+--
+-- Name: override_type; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE override_type FROM PUBLIC;
+REVOKE ALL ON TABLE override_type FROM dak;
+GRANT ALL ON TABLE override_type TO dak;
+GRANT SELECT ON TABLE override_type TO PUBLIC;
+GRANT ALL ON TABLE override_type TO ftpmaster;
+
+
+--
+-- Name: policy_queue; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE policy_queue FROM PUBLIC;
+REVOKE ALL ON TABLE policy_queue FROM dak;
+GRANT ALL ON TABLE policy_queue TO dak;
+GRANT SELECT ON TABLE policy_queue TO PUBLIC;
+GRANT ALL ON TABLE policy_queue TO ftpmaster;
+
+
+--
+-- Name: policy_queue_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE policy_queue_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE policy_queue_id_seq FROM dak;
+GRANT ALL ON SEQUENCE policy_queue_id_seq TO dak;
+GRANT ALL ON SEQUENCE policy_queue_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE policy_queue_id_seq TO PUBLIC;
+
+
+--
+-- Name: priority_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE priority_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE priority_id_seq FROM dak;
+GRANT ALL ON SEQUENCE priority_id_seq TO dak;
+GRANT SELECT ON SEQUENCE priority_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE priority_id_seq TO ftpmaster;
+
+
+--
+-- Name: priority; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE priority FROM PUBLIC;
+REVOKE ALL ON TABLE priority FROM dak;
+GRANT ALL ON TABLE priority TO dak;
+GRANT SELECT ON TABLE priority TO PUBLIC;
+GRANT ALL ON TABLE priority TO ftpmaster;
+
+
+--
+-- Name: section_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE section_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE section_id_seq FROM dak;
+GRANT ALL ON SEQUENCE section_id_seq TO dak;
+GRANT SELECT ON SEQUENCE section_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE section_id_seq TO ftpmaster;
+
+
+--
+-- Name: section; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE section FROM PUBLIC;
+REVOKE ALL ON TABLE section FROM dak;
+GRANT ALL ON TABLE section TO dak;
+GRANT SELECT ON TABLE section TO PUBLIC;
+GRANT ALL ON TABLE section TO ftpmaster;
+
+
+--
+-- Name: source_acl; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE source_acl FROM PUBLIC;
+REVOKE ALL ON TABLE source_acl FROM dak;
+GRANT ALL ON TABLE source_acl TO dak;
+GRANT SELECT ON TABLE source_acl TO PUBLIC;
+GRANT ALL ON TABLE source_acl TO ftpmaster;
+
+
+--
+-- Name: source_acl_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE source_acl_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE source_acl_id_seq FROM dak;
+GRANT ALL ON SEQUENCE source_acl_id_seq TO dak;
+GRANT ALL ON SEQUENCE source_acl_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE source_acl_id_seq TO PUBLIC;
+
+
+--
+-- Name: source_metadata; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE source_metadata FROM PUBLIC;
+REVOKE ALL ON TABLE source_metadata FROM dak;
+GRANT ALL ON TABLE source_metadata TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE source_metadata TO ftpmaster;
+GRANT SELECT ON TABLE source_metadata TO PUBLIC;
+
+
+--
+-- Name: src_contents; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_contents FROM PUBLIC;
+REVOKE ALL ON TABLE src_contents FROM dak;
+GRANT ALL ON TABLE src_contents TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE src_contents TO ftpmaster;
+GRANT SELECT ON TABLE src_contents TO PUBLIC;
+
+
+--
+-- Name: src_format; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_format FROM PUBLIC;
+REVOKE ALL ON TABLE src_format FROM dak;
+GRANT ALL ON TABLE src_format TO dak;
+GRANT SELECT ON TABLE src_format TO PUBLIC;
+GRANT ALL ON TABLE src_format TO ftpmaster;
+
+
+--
+-- Name: src_format_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE src_format_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE src_format_id_seq FROM dak;
+GRANT ALL ON SEQUENCE src_format_id_seq TO dak;
+GRANT ALL ON SEQUENCE src_format_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE src_format_id_seq TO PUBLIC;
+
+
+--
+-- Name: src_uploaders; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE src_uploaders FROM PUBLIC;
+REVOKE ALL ON TABLE src_uploaders FROM dak;
+GRANT ALL ON TABLE src_uploaders TO dak;
+GRANT SELECT ON TABLE src_uploaders TO PUBLIC;
+GRANT ALL ON TABLE src_uploaders TO ftpmaster;
+
+
+--
+-- Name: src_uploaders_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE src_uploaders_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE src_uploaders_id_seq FROM dak;
+GRANT ALL ON SEQUENCE src_uploaders_id_seq TO dak;
+GRANT SELECT ON SEQUENCE src_uploaders_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE src_uploaders_id_seq TO ftpmaster;
+
+
+--
+-- Name: suite_architectures; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE suite_architectures FROM PUBLIC;
+REVOKE ALL ON TABLE suite_architectures FROM dak;
+GRANT ALL ON TABLE suite_architectures TO dak;
+GRANT SELECT ON TABLE suite_architectures TO PUBLIC;
+GRANT ALL ON TABLE suite_architectures TO ftpmaster;
+
+
+--
+-- Name: suite_arch_by_name; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE suite_arch_by_name FROM PUBLIC;
+REVOKE ALL ON TABLE suite_arch_by_name FROM dak;
+GRANT ALL ON TABLE suite_arch_by_name TO dak;
+GRANT SELECT ON TABLE suite_arch_by_name TO PUBLIC;
+GRANT SELECT ON TABLE suite_arch_by_name TO ftpmaster;
+
+
+--
+-- Name: suite_build_queue_copy; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE suite_build_queue_copy FROM PUBLIC;
+REVOKE ALL ON TABLE suite_build_queue_copy FROM dak;
+GRANT ALL ON TABLE suite_build_queue_copy TO dak;
+GRANT SELECT ON TABLE suite_build_queue_copy TO PUBLIC;
+GRANT ALL ON TABLE suite_build_queue_copy TO ftpmaster;
+
+
+--
+-- Name: suite_src_formats; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE suite_src_formats FROM PUBLIC;
+REVOKE ALL ON TABLE suite_src_formats FROM dak;
+GRANT ALL ON TABLE suite_src_formats TO dak;
+GRANT SELECT ON TABLE suite_src_formats TO PUBLIC;
+GRANT ALL ON TABLE suite_src_formats TO ftpmaster;
+
+
+--
+-- Name: uid_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE uid_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE uid_id_seq FROM dak;
+GRANT ALL ON SEQUENCE uid_id_seq TO dak;
+GRANT SELECT ON SEQUENCE uid_id_seq TO PUBLIC;
+GRANT ALL ON SEQUENCE uid_id_seq TO ftpmaster;
+
+
+--
+-- Name: uid; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE uid FROM PUBLIC;
+REVOKE ALL ON TABLE uid FROM dak;
+GRANT ALL ON TABLE uid TO dak;
+GRANT SELECT ON TABLE uid TO PUBLIC;
+GRANT ALL ON TABLE uid TO ftpmaster;
+
+
+--
+-- Name: upload_blocks; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE upload_blocks FROM PUBLIC;
+REVOKE ALL ON TABLE upload_blocks FROM dak;
+GRANT ALL ON TABLE upload_blocks TO dak;
+GRANT SELECT ON TABLE upload_blocks TO PUBLIC;
+GRANT ALL ON TABLE upload_blocks TO ftpmaster;
+
+
+--
+-- Name: upload_blocks_id_seq; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON SEQUENCE upload_blocks_id_seq FROM PUBLIC;
+REVOKE ALL ON SEQUENCE upload_blocks_id_seq FROM dak;
+GRANT ALL ON SEQUENCE upload_blocks_id_seq TO dak;
+GRANT ALL ON SEQUENCE upload_blocks_id_seq TO ftpmaster;
+GRANT SELECT ON SEQUENCE upload_blocks_id_seq TO PUBLIC;
+
+
+--
+-- Name: version_check; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE version_check FROM PUBLIC;
+REVOKE ALL ON TABLE version_check FROM dak;
+GRANT ALL ON TABLE version_check TO dak;
+GRANT SELECT,INSERT,UPDATE ON TABLE version_check TO ftpmaster;
+GRANT SELECT ON TABLE version_check TO PUBLIC;
+
+
+--
+-- Name: version_checks; Type: ACL; Schema: public; Owner: dak
+--
+
+REVOKE ALL ON TABLE version_checks FROM PUBLIC;
+REVOKE ALL ON TABLE version_checks FROM dak;
+GRANT ALL ON TABLE version_checks TO dak;
+GRANT SELECT ON TABLE version_checks TO PUBLIC;
+
+
+--
+-- PostgreSQL database dump complete
+--
+
+-- Set schema version
+INSERT INTO config (name, value) VALUES ('db_revision', 65);
+
diff --git a/templates/missing-contents b/templates/missing-contents
deleted file mode 100644 (file)
index 8605e02..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-From: __DAK_ADDRESS__
-To: __TO_ADDRESS__
-X-Debian: DAK
-X-Debian-Package: __PACKAGE__
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-Subject: Missing contents for __PACKAGE__ in accepted queue
-
-While processing the accepted queue, I didn't have contents in the
-database for __PACKAGE__ version __VERSION__ for arch __ARCH__.  These
-contents should have been put into the database by process-unchecked
-when the package first arrived.
-
-This is probably stew's fault.