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.0033_published_cols_for_histories_and_workflows

"""
Migration script to add necessary columns for distinguishing between viewing/importing and publishing histories, \
workflows, and pages. Script adds published column to histories and workflows and importable column to pages.
"""
from __future__ import print_function

import logging

from sqlalchemy import Boolean, Column, Index, MetaData, Table

from galaxy.model.migrate.versions.util import add_column, drop_column

log = logging.getLogger(__name__)
metadata = MetaData()


[docs]def upgrade(migrate_engine): print(__doc__) metadata.bind = migrate_engine metadata.reflect() # Create published column in history table. History_table = Table("history", metadata, autoload=True) c = Column("published", Boolean, index=True) add_column(c, History_table, metadata, index_name='ix_history_published') if migrate_engine.name != 'sqlite': # Create index for published column in history table. try: i = Index("ix_history_published", History_table.c.published) i.create() except Exception: # Mysql doesn't have a named index, but alter should work History_table.c.published.alter(unique=False) # Create published column in stored workflows table. StoredWorkflow_table = Table("stored_workflow", metadata, autoload=True) c = Column("published", Boolean, index=True) add_column(c, StoredWorkflow_table, metadata, index_name='ix_stored_workflow_published') if migrate_engine.name != 'sqlite': # Create index for published column in stored workflows table. try: i = Index("ix_stored_workflow_published", StoredWorkflow_table.c.published) i.create() except Exception: # Mysql doesn't have a named index, but alter should work StoredWorkflow_table.c.published.alter(unique=False) # Create importable column in page table. Page_table = Table("page", metadata, autoload=True) c = Column("importable", Boolean, index=True) add_column(c, Page_table, metadata, index_name='ix_page_importable') if migrate_engine.name != 'sqlite': # Create index for importable column in page table. try: i = Index("ix_page_importable", Page_table.c.importable) i.create() except Exception: # Mysql doesn't have a named index, but alter should work Page_table.c.importable.alter(unique=False)
[docs]def downgrade(migrate_engine): metadata.bind = migrate_engine metadata.reflect() drop_column('published', 'history', metadata) drop_column('published', 'stored_workflow', metadata) drop_column('importable', 'page', metadata)