X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdakdb%2Fupdate41.py;h=5243cd6704d4c1b004c5c7d4d92cedb9d8196aca;hb=27e00376e81d1c37ff327ee0d39670b266418869;hp=338648fa2f08df10bb2b0916ee44ea2c52a8d3c2;hpb=5b7cd835e58613831925807ec170705c937b15bb;p=dak.git diff --git a/dak/dakdb/update41.py b/dak/dakdb/update41.py index 338648fa..5243cd67 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,12 +49,18 @@ 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() - except psycopg2.ProgrammingError, msg: + except psycopg2.ProgrammingError as msg: self.db.rollback() raise DBUpdateError, 'Unable to apply sick update 41, rollback issued. Error message : %s' % (str(msg))