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 galaxy.model.migrate.versions.0038_add_inheritable_column_to_library_template_assoc_tables

"""
Migration script to add an inheritable column to the following tables:
library_info_association, library_folder_info_association.
Also, in case of sqlite check if the previous migration script deleted the
request table and if so, restore the table.
"""
from __future__ import print_function

import datetime
import logging

from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT

from galaxy.model.custom_types import TrimmedString
from galaxy.model.migrate.versions.util import engine_false

now = datetime.datetime.utcnow
log = logging.getLogger(__name__)
metadata = MetaData()


[docs]def upgrade(migrate_engine): print(__doc__) metadata.bind = migrate_engine # In case of sqlite, check if the previous migration script deleted the # request table and if so, restore the table. if migrate_engine.name == 'sqlite': if not migrate_engine.has_table('request'): # load the tables referenced in foreign keys metadata.reflect(only=['form_values', 'request_type', 'galaxy_user']) # create a temporary table Request_table = Table('request', metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now), Column("name", TrimmedString(255), nullable=False), Column("desc", TEXT), Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), Column("deleted", Boolean, index=True, default=False)) try: Request_table.create() except Exception: log.exception("Creating request table failed.") metadata.reflect() try: LibraryInfoAssociation_table = Table("library_info_association", metadata, autoload=True) c = Column("inheritable", Boolean, index=True, default=False) c.create(LibraryInfoAssociation_table, index_name='ix_library_info_association_inheritable') assert c is LibraryInfoAssociation_table.c.inheritable except Exception: log.exception("Adding column 'inheritable' to 'library_info_association' table failed.") cmd = "UPDATE library_info_association SET inheritable = %s" % engine_false(migrate_engine) try: migrate_engine.execute(cmd) except Exception: log.exception("Setting value of column inheritable to false in library_info_association failed.") try: LibraryFolderInfoAssociation_table = Table("library_folder_info_association", metadata, autoload=True) c = Column("inheritable", Boolean, index=True, default=False) c.create(LibraryFolderInfoAssociation_table, index_name='ix_library_folder_info_association_inheritable') assert c is LibraryFolderInfoAssociation_table.c.inheritable except Exception: log.exception("Adding column 'inheritable' to 'library_folder_info_association' table failed.") cmd = "UPDATE library_folder_info_association SET inheritable = %s" % engine_false(migrate_engine) try: migrate_engine.execute(cmd) except Exception: log.exception("Setting value of column inheritable to false in library_folder_info_association failed.")
[docs]def downgrade(migrate_engine): pass