X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdakdb%2Fupdate33.py;h=5b0fe110d4dab1dad30ecf27c575d85ccd6db12a;hb=e2c4fd7f21c3b33cd7192bded5d6373e0ee90374;hp=28e5a28abf6f423c3e3023bec742cba536fbd661;hpb=d9daaa0b74845853a09b34cd930f6f2879bc1254;p=dak.git diff --git a/dak/dakdb/update33.py b/dak/dakdb/update33.py index 28e5a28a..5b0fe110 100644 --- a/dak/dakdb/update33.py +++ b/dak/dakdb/update33.py @@ -2,7 +2,7 @@ # coding=utf8 """ -Implement changelogs table +Implement changelogs related tables @contact: Debian FTP Master @copyright: 2010 Luca Falavigna @@ -39,12 +39,17 @@ def do_update(self): print __doc__ try: c = self.db.cursor() - c.execute('CREATE TABLE changelogs (source text, version debversion, suite text, changelog text)') + c.execute('ALTER TABLE changes ADD COLUMN changelog_id integer') + c.execute('CREATE TABLE changelogs_text (id serial PRIMARY KEY NOT NULL, changelog text)') + c.execute("GRANT SELECT ON changelogs_text TO public") + c.execute("GRANT ALL ON changelogs_text TO ftpmaster") + c.execute('CREATE VIEW changelogs AS SELECT cl.id, source, CAST(version AS debversion), architecture, changelog \ + FROM changes c JOIN changelogs_text cl ON cl.id = c.changelog_id') c.execute("GRANT SELECT ON changelogs TO public") c.execute("GRANT ALL ON changelogs TO ftpmaster") c.execute("UPDATE config SET value = '33' WHERE name = 'db_revision'") self.db.commit() - except psycopg2.ProgrammingError, msg: + except psycopg2.ProgrammingError as msg: self.db.rollback() - raise DBUpdateError, 'Unable to apply build_queue update 32, rollback issued. Error message : %s' % (str(msg)) + raise DBUpdateError('Unable to apply build_queue update 33, rollback issued. Error message : %s' % (str(msg)))