]> err.no Git - dak/commitdiff
Merge branch 'content_generation' of http://kernel.ubuntu.com/~mcasadevall/dak into...
authorMike O'Connor <stew@vireo.org>
Wed, 28 Jan 2009 02:09:57 +0000 (21:09 -0500)
committerMike O'Connor <stew@vireo.org>
Wed, 28 Jan 2009 02:09:57 +0000 (21:09 -0500)
Conflicts:

dak/dakdb/update2.py
dak/update_db.py

This updates the "required_schema" to 4, moving mcasadevall's update2 to
update4

Signed-off-by: Mike O'Connor <stew@vireo.org>
1  2 
dak/dakdb/update2.py
dak/dakdb/update4.py
dak/update_db.py

index 20154b07e007ef636d6fd5cde8713cbaf48c65c3,ec9650b1e8987a557b908d1927fb74fe32a99267..0cf747e923a3786f80306e9e44ce50be2b846a46
mode 100755,100644..100755
@@@ -26,11 -29,7 +26,13 @@@ import psycopg2, tim
  ################################################################################
  
  def do_update(self):
 -    print "Adding content fields to database"
++vvvvvvvvvvvvvvvvvvvv
 +    print "Note: to be able to enable the the PL/Perl (plperl) procedural language, we do"
 +    print "need postgresql-plperl-$postgres-version installed. Make sure that this is the"
 +    print "case before you continue. Interrupt if it isn't, sleeping 5 seconds now."
 +    print "(We need to be database superuser for this to work!)"
 +    time.sleep (5)
++^^^^^^^^^^^^^^^^^^^^
  
      try:
          c = self.db.cursor()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..31160766cbf37595d21e2eff4a3c00dab24ebe7f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,86 @@@
++#!/usr/bin/env python
++# coding=utf8
++
++"""
++Debian Archive Kit Database Update Script
++Copyright © 2008  Michael Casadevall <mcasadevall@debian.org>
++Copyright © 2008  Roger Leigh <rleigh@debian.org>
++
++Debian Archive Kit Database Update Script 2
++"""
++
++# 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
++
++################################################################################
++
++# <tomv_w> really, if we want to screw ourselves, let's find a better way.
++# <Ganneff> rm -rf /srv/ftp.debian.org
++
++################################################################################
++
++import psycopg2, time
++
++################################################################################
++
++def do_update(self):
++    print "Adding content fields to database"
++
++    try:
++        c = self.db.cursor()
++        c.execute("""CREATE TABLE content_file_paths (
++                     id serial primary key not null,
++                     path text unique not null
++                   )""")
++
++        c.execute("""CREATE TABLE content_file_names (
++                    id serial primary key not null,
++                    file text unique not null
++                   )""")
++
++        c.execute("""CREATE TABLE content_associations (
++                    id serial not null,
++                    binary_pkg int4 not null references binaries(id) on delete cascade,
++                    filepath int4 not null references content_file_paths(id) on delete cascade,
++                    filename int4 not null references content_file_names(id) on delete cascade
++                  );""")
++
++        c.execute("""CREATE FUNCTION comma_concat(text, text) RETURNS text
++                   AS $_$select case
++                   WHEN $2 is null or $2 = '' THEN $1
++                   WHEN $1 is null or $1 = '' THEN $2
++                   ELSE $1 || ',' || $2
++                   END$_$
++                   LANGUAGE sql""")
++
++        c.execute("""CREATE AGGREGATE comma_separated_list (
++                   BASETYPE = text,
++                   SFUNC = comma_concat,
++                   STYPE = text,
++                   INITCOND = ''
++                   );""")
++
++        c.execute("UPDATE config SET value = '2' WHERE name = 'db_revision'")
++        self.db.commit()
++
++        print "REMINDER: Remember to fully regenerate the Contents files before running import-contents"
++        print ""
++        print "Pausing for five seconds ..."
++        time.sleep (5)
++
++    except psycopg2.ProgrammingError, msg:
++        self.db.rollback()
++        print "FATAL: Unable to apply debversion table update 2!"
++        print "Error Message: " + str(msg)
++        print "Database changes have been rolled back."
index 6db74d9de35195df4d66ce782ba1495cb9d0442c,7d89e6bfeb8871bd7eb1423b21f52506085dd126..ee1e50f8a953acae389c5fb2ef41c386ae66b4ae
@@@ -36,7 -36,7 +36,7 @@@ from daklib import util
  
  Cnf = None
  projectB = None
- required_database_schema = 3
 -required_database_schema = 2
++required_database_schema = 4
  
  ################################################################################