Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for tool_shed.webapp.model.migrate.versions.0026_add_numeric_revision_column

"""Migration script to add the numeric_revision column to the repository metadata table."""

import logging
import sys

from sqlalchemy import Column, Integer, MetaData, Table

log = logging.getLogger(__name__)
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler(sys.stdout)
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter(format)
handler.setFormatter(formatter)
log.addHandler(handler)

metadata = MetaData()


[docs]def upgrade(migrate_engine): print(__doc__) metadata.bind = migrate_engine metadata.reflect() RepositoryMetadata_table = Table("repository_metadata", metadata, autoload=True) c = Column("numeric_revision", Integer, index=True) try: # Create c.create(RepositoryMetadata_table, index_name="ix_numeric_revision") assert c is RepositoryMetadata_table.c.numeric_revision except Exception: log.exception("Adding numeric_revision column to the repository table failed.") # Update the numeric_revision column to have the default undefined value. cmd = "UPDATE repository_metadata SET numeric_revision = -1" migrate_engine.execute(cmd)
[docs]def downgrade(migrate_engine): metadata.bind = migrate_engine metadata.reflect() # Drop numeric_revision column from repository table. RepositoryMetadata_table = Table("repository_metadata", metadata, autoload=True) try: RepositoryMetadata_table.c.numeric_revision.drop() except Exception: log.exception("Dropping column numeric_revision from the repository table failed.")