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.0005_drop_tool_related_tables
"""
Drops the tool, tool_category_association, event, tool_event_association, tool_rating_association,
tool_tag_association and tool_annotation_association tables since they are no longer used in the
next-gen tool shed.
"""
import datetime
import logging
import sys
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
from sqlalchemy.exc import NoSuchTableError
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import TrimmedString
now = datetime.datetime.utcnow
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__)
# Load existing tables
metadata.bind = migrate_engine
metadata.reflect()
# Load and then drop the tool_category_association table
try:
ToolCategoryAssociation_table = Table("tool_category_association", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool_category_association")
try:
ToolCategoryAssociation_table.drop()
except Exception:
log.exception("Dropping tool_category_association table failed.")
# Load and then drop the tool_event_association table
try:
ToolEventAssociation_table = Table("tool_event_association", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool_event_association")
try:
ToolEventAssociation_table.drop()
except Exception:
log.exception("Dropping tool_event_association table failed.")
# Load and then drop the tool_rating_association table
try:
ToolRatingAssociation_table = Table("tool_rating_association", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool_rating_association")
try:
ToolRatingAssociation_table.drop()
except Exception:
log.exception("Dropping tool_rating_association table failed.")
# Load and then drop the tool_tag_association table
try:
ToolTagAssociation_table = Table("tool_tag_association", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool_tag_association")
try:
ToolTagAssociation_table.drop()
except Exception:
log.exception("Dropping tool_tag_association table failed.")
# Load and then drop the tool_annotation_association table
try:
ToolAnnotationAssociation_table = Table("tool_annotation_association", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool_annotation_association")
try:
ToolAnnotationAssociation_table.drop()
except Exception:
log.exception("Dropping tool_annotation_association table failed.")
# Load and then drop the event table
try:
Event_table = Table("event", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table event")
try:
Event_table.drop()
except Exception:
log.exception("Dropping event table failed.")
# Load and then drop the tool table
try:
Tool_table = Table("tool", metadata, autoload=True)
except NoSuchTableError:
log.debug("Failed loading table tool")
try:
Tool_table.drop()
except Exception:
log.exception("Dropping tool table failed.")
[docs]def downgrade(migrate_engine):
# Load existing tables
metadata.bind = migrate_engine
metadata.reflect()
# We've lost all of our data, so downgrading is useless. However, we'll
# at least re-create the dropped tables.
Event_table = Table('event', metadata,
Column("id", Integer, primary_key=True),
Column("create_time", DateTime, default=now),
Column("update_time", DateTime, default=now, onupdate=now),
Column("state", TrimmedString(255), index=True),
Column("comment", TEXT))
Tool_table = Table("tool", metadata,
Column("id", Integer, primary_key=True),
Column("guid", TrimmedString(255), index=True, unique=True),
Column("tool_id", TrimmedString(255), index=True),
Column("create_time", DateTime, default=now),
Column("update_time", DateTime, default=now, onupdate=now),
Column("newer_version_id", Integer, ForeignKey("tool.id"), nullable=True),
Column("name", TrimmedString(255), index=True),
Column("description", TEXT),
Column("user_description", TEXT),
Column("version", TrimmedString(255)),
Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True),
Column("external_filename", TEXT),
Column("deleted", Boolean, index=True, default=False),
Column("suite", Boolean, default=False, index=True))
ToolCategoryAssociation_table = Table("tool_category_association", metadata,
Column("id", Integer, primary_key=True),
Column("tool_id", Integer, ForeignKey("tool.id"), index=True),
Column("category_id", Integer, ForeignKey("category.id"), index=True))
ToolEventAssociation_table = Table("tool_event_association", metadata,
Column("id", Integer, primary_key=True),
Column("tool_id", Integer, ForeignKey("tool.id"), index=True),
Column("event_id", Integer, ForeignKey("event.id"), index=True))
ToolRatingAssociation_table = Table("tool_rating_association", metadata,
Column("id", Integer, primary_key=True),
Column("create_time", DateTime, default=now),
Column("update_time", DateTime, default=now, onupdate=now),
Column("tool_id", Integer, ForeignKey("tool.id"), index=True),
Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True),
Column("rating", Integer, index=True),
Column("comment", TEXT))
ToolTagAssociation_table = Table("tool_tag_association", metadata,
Column("id", Integer, primary_key=True),
Column("tool_id", Integer, ForeignKey("tool.id"), index=True),
Column("tag_id", Integer, ForeignKey("tag.id"), index=True),
Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True),
Column("user_tname", TrimmedString(255), index=True),
Column("value", TrimmedString(255), index=True),
Column("user_value", TrimmedString(255), index=True))
ToolAnnotationAssociation_table = Table("tool_annotation_association", metadata,
Column("id", Integer, primary_key=True),
Column("tool_id", Integer, ForeignKey("tool.id"), index=True),
Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True),
Column("annotation", TEXT, index=True))
# Create the event table
try:
Event_table.create()
except Exception:
log.exception("Creating event table failed.")
# Create the tool table
try:
Tool_table.create()
except Exception:
log.exception("Creating tool table failed.")
# Create the tool_category_association table
try:
ToolCategoryAssociation_table.create()
except Exception:
log.exception("Creating tool_category_association table failed.")
# Create the tool_event_association table
try:
ToolEventAssociation_table.create()
except Exception:
log.exception("Creating tool_event_association table failed.")
# Create the tool_rating_association table
try:
ToolRatingAssociation_table.create()
except Exception:
log.exception("Creating tool_rating_association table failed.")
# Create the tool_tag_association table
try:
ToolTagAssociation_table.create()
except Exception:
log.exception("Creating tool_tag_association table failed.")
# Create the tool_annotation_association table
try:
ToolAnnotationAssociation_table.create()
except Exception:
log.exception("Creating tool_annotation_association table failed.")