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.0037_samples_library

"""
This migration script removes the library_id & folder_id fields in the 'request' table and
adds the same to the 'sample' table. This also adds a 'datatx' column to request_type table
to store the sequencer login information. Finally, this adds a 'dataset_files' column to
the sample table.
"""

import datetime
import logging

from sqlalchemy import (
    Column,
    ForeignKey,
    Integer,
    MetaData,
    Table,
)

from galaxy.model.custom_types import (
    JSONType,
)
from galaxy.model.migrate.versions.util import (
    add_column,
    drop_column
)

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


[docs]def upgrade(migrate_engine): print(__doc__) metadata.bind = migrate_engine metadata.reflect() # Add the datatx_info column in 'request_type' table col = Column("datatx_info", JSONType) add_column(col, 'request_type', metadata) # Delete the library_id column in 'request' table Request_table = Table("request", metadata, autoload=True) # TODO: Dropping a column used in a foreign key fails in MySQL, need to remove the FK first. drop_column('library_id', Request_table) # Delete the folder_id column in 'request' table # TODO: Dropping a column used in a foreign key fails in MySQL, need to remove the FK first. drop_column('folder_id', Request_table) # Add the dataset_files column in 'sample' table Sample_table = Table("sample", metadata, autoload=True) col = Column("dataset_files", JSONType) add_column(col, Sample_table, metadata) # Add the library_id column in 'sample' table col = Column("library_id", Integer, ForeignKey("library.id"), index=True) add_column(col, Sample_table, metadata, index_name='ix_sample_library_id') # Add the library_id column in 'sample' table col = Column("folder_id", Integer, ForeignKey("library_folder.id"), index=True) add_column(col, Sample_table, metadata, index_name='ix_sample_library_folder_id')
[docs]def downgrade(migrate_engine): metadata.bind = migrate_engine metadata.reflect() Sample_table = Table("sample", metadata, autoload=True) drop_column('folder_id', Sample_table) drop_column('library_id', Sample_table) drop_column('dataset_files', Sample_table) Request_table = Table("request", metadata, autoload=True) col = Column('folder_id', Integer, ForeignKey('library_folder.id'), index=True) add_column(col, Request_table, metadata, index_name='ix_request_folder_id') col = Column('library_id', Integer, ForeignKey("library.id"), index=True) add_column(col, Request_table, metadata, index_name='ix_request_library_id') drop_column('datatx_info', 'request_type', metadata)