From: Torsten Werner Date: Thu, 3 Feb 2011 09:41:36 +0000 (+0100) Subject: Add a missing primary key in DB upgrade #41. X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b37c68f8428771d84c4669d5092fb1dcab62d138;p=dak Add a missing primary key in DB upgrade #41. Signed-off-by: Torsten Werner --- diff --git a/dak/dakdb/update41.py b/dak/dakdb/update41.py index 338648fa..813a3b70 100755 --- a/dak/dakdb/update41.py +++ b/dak/dakdb/update41.py @@ -2,8 +2,8 @@ # coding=utf8 """ -Remove useless type casts from primary keys to support sqlalchemy's -reflection mechanism for all tables. Rename 2 sequences. +Remove useless type casts from primary keys to support sqlalchemy's reflection +mechanism for all tables. Rename 2 sequences and add 1 primary key. @contact: Debian FTP Master @copyright: 2011 Torsten Werner @@ -33,11 +33,14 @@ from socket import gethostname; ################################################################################ def do_update(self): """ - Remove useless type casts from primary keys and fix 2 sequences. + Remove useless type casts from primary keys, fix 2 sequences, and add 1 + primary key. """ print __doc__ try: c = self.db.cursor() + + # remove useless type casts for table in ('architecture', 'archive', 'bin_associations', \ 'binaries', 'component', 'dsc_files', 'files', \ 'fingerprint', 'location', 'maintainer', 'override_type', \ @@ -46,9 +49,15 @@ def do_update(self): c.execute("ALTER TABLE %s ALTER id SET DEFAULT nextval('%s_id_seq'::regclass)" % \ (table, table)) + # rename sequences c.execute("ALTER SEQUENCE known_changes_id_seq RENAME TO changes_id_seq") c.execute("ALTER SEQUENCE queue_files_id_seq RENAME TO build_queue_files_id_seq") + # replace unique contraint by primary key + c.execute( \ + "ALTER TABLE bin_contents DROP CONSTRAINT bin_contents_file_key"); + c.execute("ALTER TABLE bin_contents ADD PRIMARY KEY (file, binary_id)"); + c.execute("UPDATE config SET value = '41' WHERE name = 'db_revision'") self.db.commit()