Source code for dak.dakdb.update116

"""
Add support for by-hash with a new table and per-suite boolean

@contact: Debian FTP Master <ftpmaster@debian.org>
@copyright: 2016, Julien Cristau <jcristau@debian.org>
@license: GNU General Public License version 2 or later
"""

import psycopg2
from daklib.dak_exceptions import DBUpdateError


[docs]def do_update(self): """Add column to store whether to generate by-hash things per suite, add table to store when by-hash files stopped being referenced """ print(__doc__) try: c = self.db.cursor() c.execute("ALTER TABLE suite ADD COLUMN byhash BOOLEAN DEFAULT false") c.execute(""" CREATE TABLE hashfile ( suite_id INTEGER NOT NULL REFERENCES suite(id) ON DELETE CASCADE, path TEXT NOT NULL, unreferenced TIMESTAMP, PRIMARY KEY (suite_id, path) ) """) c.execute("UPDATE config SET value = '116' WHERE name = 'db_revision'") self.db.commit() except psycopg2.ProgrammingError as msg: self.db.rollback() raise DBUpdateError('Unable to apply sick update 116, rollback issued. Error message : %s' % (str(msg)))