Warning
This document is for an in-development version 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.")