Source code for dak.dakdb.update118

"""set owner tables for sequences

@contact: Debian FTP Master <ftpmaster@debian.org>
@copyright: 2018, Bastian Blank <waldi@debian.org>
@license: GNU General Public License version 2 or later
"""

# 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

################################################################################

import psycopg2

from daklib.dak_exceptions import DBUpdateError

sequences = {
    "acl_id_seq": "acl.id",
    "architecture_id_seq": "architecture.id",
    "archive_id_seq": "archive.id",
    "bin_associations_id_seq": "bin_associations.id",
    "binaries_id_seq": "binaries.id",
    "build_queue_id_seq": "build_queue.id",
    "changelogs_text_id_seq": "changelogs_text.id",
    "changes_id_seq": "changes.id",
    "component_id_seq": "component.id",
    "component_ordering_seq": "component.ordering",
    "config_id_seq": "config.id",
    "dsc_files_id_seq": "dsc_files.id",
    "files_id_seq": "files.id",
    "fingerprint_id_seq": "fingerprint.id",
    "keyrings_id_seq": "keyrings.id",
    "maintainer_id_seq": "maintainer.id",
    "metadata_keys_key_id_seq": "metadata_keys.key_id",
    "new_comments_id_seq": "new_comments.id",
    "override_type_id_seq": "override_type.id",
    "policy_queue_byhand_file_id_seq": "policy_queue_byhand_file.id",
    "policy_queue_id_seq": "policy_queue.id",
    "policy_queue_upload_id_seq": "policy_queue_upload.id",
    "priority_id_seq": "priority.id",
    "section_id_seq": "section.id",
    "source_id_seq": "source.id",
    "src_associations_id_seq": "src_associations.id",
    "src_format_id_seq": "src_format.id",
    "src_uploaders_id_seq": "src_uploaders.id",
    "suite_id_seq": "suite.id",
    "uid_id_seq": "uid.id",
}

################################################################################


[docs]def do_update(self): print(__doc__) try: c = self.db.cursor() for i in sequences.items(): c.execute("ALTER SEQUENCE {0} OWNED BY {1}".format(*i)) c.execute("UPDATE config SET value = '118' WHERE name = 'db_revision'") self.db.commit() except psycopg2.ProgrammingError as msg: self.db.rollback() raise DBUpdateError( "Unable to apply sick update 118, rollback issued. Error message: {0}".format( msg ) )