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 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.
"""

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)