mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Another round of migration refactoring
Allow `table` to be a string in `drop_table()`. Sync definition of `form_definition` and `form_definition_current` tables between migration 8 and `mapping.py` . Drop unnecessary logging configurations.
This commit is contained in:
@@ -1161,8 +1161,7 @@ model.FormDefinition.table = Table(
|
||||
Column("update_time", DateTime, default=now, onupdate=now),
|
||||
Column("name", TrimmedString(255), nullable=False),
|
||||
Column("desc", TEXT),
|
||||
Column("form_definition_current_id", Integer,
|
||||
ForeignKey("form_definition_current.id", name='for_def_form_def_current_id_fk', use_alter=True), index=True),
|
||||
Column("form_definition_current_id", Integer, ForeignKey("form_definition_current.id", use_alter=True), index=True, nullable=False),
|
||||
Column("fields", JSONType()),
|
||||
Column("type", TrimmedString(255), index=True),
|
||||
Column("layout", JSONType()))
|
||||
|
||||
@@ -1,13 +1,30 @@
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Numeric, String, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Numeric,
|
||||
String,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import JSONType, MetadataType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
JSONType,
|
||||
MetadataType,
|
||||
TrimmedString
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# Tables as of changeset 1464:c7acaa1bb88f
|
||||
@@ -197,5 +214,6 @@ StoredWorkflowMenuEntry_table = Table("stored_workflow_menu_entry", metadata,
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.create_all()
|
||||
|
||||
@@ -1,14 +1,28 @@
|
||||
"""
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New table in changeset 1568:0b022adfdc34
|
||||
@@ -23,6 +37,7 @@ MetadataFile_table = Table("metadata_file", metadata,
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
|
||||
@@ -1,32 +1,42 @@
|
||||
"""
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from migrate import ForeignKeyConstraint
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Index, Integer, MetaData, String, Table, TEXT
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Index,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType, MetadataType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
JSONType,
|
||||
MetadataType,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
add_index,
|
||||
drop_column,
|
||||
drop_index,
|
||||
drop_table,
|
||||
engine_false,
|
||||
localtimestamp,
|
||||
nextval
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New tables as of changeset 2341:5498ac35eedd
|
||||
@@ -314,108 +324,57 @@ Index("ix_jeom_library_dataset_dataset_association_id", JobExternalOutputMetadat
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
# Add 2 new columns to the galaxy_user table
|
||||
try:
|
||||
User_table = Table("galaxy_user", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
User_table = None
|
||||
log.debug("Failed loading table galaxy_user")
|
||||
if User_table is not None:
|
||||
col = Column('deleted', Boolean, index=True, default=False)
|
||||
add_column(col, User_table, index_name='ix_galaxy_user_deleted')
|
||||
col = Column('purged', Boolean, index=True, default=False)
|
||||
add_column(col, User_table, index_name='ix_galaxy_user_purged')
|
||||
User_table = Table("galaxy_user", metadata, autoload=True)
|
||||
col = Column('deleted', Boolean, index=True, default=False)
|
||||
add_column(col, User_table, index_name='ix_galaxy_user_deleted')
|
||||
col = Column('purged', Boolean, index=True, default=False)
|
||||
add_column(col, User_table, index_name='ix_galaxy_user_purged')
|
||||
# Add 1 new column to the history_dataset_association table
|
||||
try:
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
HistoryDatasetAssociation_table = None
|
||||
log.debug("Failed loading table history_dataset_association")
|
||||
if HistoryDatasetAssociation_table is not None:
|
||||
try:
|
||||
col = Column('copied_from_library_dataset_dataset_association_id', Integer, nullable=True)
|
||||
col.create(HistoryDatasetAssociation_table)
|
||||
assert col is HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id
|
||||
except Exception:
|
||||
log.exception("Adding column 'copied_from_library_dataset_dataset_association_id' to history_dataset_association table failed.")
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
col = Column('copied_from_library_dataset_dataset_association_id', Integer, nullable=True)
|
||||
add_column(col, HistoryDatasetAssociation_table, metadata)
|
||||
# Add 1 new column to the metadata_file table
|
||||
try:
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
MetadataFile_table = None
|
||||
log.debug("Failed loading table metadata_file")
|
||||
if MetadataFile_table is not None:
|
||||
try:
|
||||
col = Column('lda_id', Integer, index=True, nullable=True)
|
||||
col.create(MetadataFile_table, index_name='ix_metadata_file_lda_id')
|
||||
assert col is MetadataFile_table.c.lda_id
|
||||
except Exception:
|
||||
log.exception("Adding column 'lda_id' to metadata_file table failed.")
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
col = Column('lda_id', Integer, index=True, nullable=True)
|
||||
add_column(col, MetadataFile_table, metadata, index_name='ix_metadata_file_lda_id')
|
||||
# Add 1 new column to the stored_workflow table - changeset 2328
|
||||
try:
|
||||
StoredWorkflow_table = Table("stored_workflow", metadata,
|
||||
Column("latest_workflow_id", Integer,
|
||||
ForeignKey("workflow.id", use_alter=True, name='stored_workflow_latest_workflow_id_fk'), index=True),
|
||||
autoload=True, extend_existing=True)
|
||||
except NoSuchTableError:
|
||||
StoredWorkflow_table = None
|
||||
log.debug("Failed loading table stored_workflow")
|
||||
if StoredWorkflow_table is not None:
|
||||
try:
|
||||
col = Column('importable', Boolean, default=False)
|
||||
col.create(StoredWorkflow_table)
|
||||
assert col is StoredWorkflow_table.c.importable
|
||||
except Exception:
|
||||
log.exception("Adding column 'importable' to stored_workflow table failed.")
|
||||
StoredWorkflow_table = Table("stored_workflow", metadata,
|
||||
Column("latest_workflow_id", Integer,
|
||||
ForeignKey("workflow.id", use_alter=True, name='stored_workflow_latest_workflow_id_fk'), index=True),
|
||||
autoload=True, extend_existing=True)
|
||||
col = Column('importable', Boolean, default=False)
|
||||
add_column(col, StoredWorkflow_table, metadata)
|
||||
# Create an index on the Job.state column - changeset 2192
|
||||
add_index('ix_job_state', 'job', 'state', metadata)
|
||||
# Add all of the new tables above
|
||||
metadata.create_all()
|
||||
# Add 1 foreign key constraint to the history_dataset_association table
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
try:
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
HistoryDatasetAssociation_table = None
|
||||
log.debug("Failed loading table history_dataset_association")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_association")
|
||||
if HistoryDatasetAssociation_table is not None and LibraryDatasetDatasetAssociation_table is not None:
|
||||
cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='history_dataset_association_copied_from_library_dataset_da_fkey')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding foreign key constraint 'history_dataset_association_copied_from_library_dataset_da_fkey' to table 'history_dataset_association' failed.")
|
||||
# Add 1 foreign key constraint to the metadata_file table
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
if migrate_engine.name != 'sqlite':
|
||||
# Sqlite can't alter table add foreign key.
|
||||
try:
|
||||
cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id],
|
||||
cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='history_dataset_association_copied_from_library_dataset_da_fkey')
|
||||
name='metadata_file_lda_id_fkey')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding foreign key constraint 'history_dataset_association_copied_from_library_dataset_da_fkey' to table 'history_dataset_association' failed.")
|
||||
# Add 1 foreign key constraint to the metadata_file table
|
||||
try:
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
MetadataFile_table = None
|
||||
log.debug("Failed loading table metadata_file")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_association")
|
||||
if migrate_engine.name != 'sqlite':
|
||||
# Sqlite can't alter table add foreign key.
|
||||
if MetadataFile_table is not None and LibraryDatasetDatasetAssociation_table is not None:
|
||||
try:
|
||||
cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='metadata_file_lda_id_fkey')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding foreign key constraint 'metadata_file_lda_id_fkey' to table 'metadata_file' failed.")
|
||||
log.exception("Adding foreign key constraint 'metadata_file_lda_id_fkey' to table 'metadata_file' failed.")
|
||||
# Make sure we have at least 1 user
|
||||
cmd = "SELECT * FROM galaxy_user;"
|
||||
users = migrate_engine.execute(cmd).fetchall()
|
||||
@@ -505,222 +464,72 @@ def downgrade(migrate_engine):
|
||||
|
||||
# NOTE: all new data added in the upgrade method is eliminated here via table drops
|
||||
# Drop 1 foreign key constraint from the metadata_file table
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
try:
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
MetadataFile_table = None
|
||||
log.debug("Failed loading table metadata_file")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_association")
|
||||
if MetadataFile_table is not None and LibraryDatasetDatasetAssociation_table is not None:
|
||||
try:
|
||||
cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='metadata_file_lda_id_fkey')
|
||||
# Drop the constraint
|
||||
cons.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping foreign key constraint 'metadata_file_lda_id_fkey' from table 'metadata_file' failed.")
|
||||
cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='metadata_file_lda_id_fkey')
|
||||
# Drop the constraint
|
||||
cons.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping foreign key constraint 'metadata_file_lda_id_fkey' from table 'metadata_file' failed.")
|
||||
# Drop 1 foreign key constraint from the history_dataset_association table
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
try:
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
HistoryDatasetAssociation_table = None
|
||||
log.debug("Failed loading table history_dataset_association")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociation_table = Table("library_dataset_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_association")
|
||||
if HistoryDatasetAssociation_table is not None and LibraryDatasetDatasetAssociation_table is not None:
|
||||
try:
|
||||
cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='history_dataset_association_copied_from_library_dataset_da_fkey')
|
||||
# Drop the constraint
|
||||
cons.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping foreign key constraint 'history_dataset_association_copied_from_library_dataset_da_fkey' from table 'history_dataset_association' failed.")
|
||||
cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id],
|
||||
[LibraryDatasetDatasetAssociation_table.c.id],
|
||||
name='history_dataset_association_copied_from_library_dataset_da_fkey')
|
||||
# Drop the constraint
|
||||
cons.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping foreign key constraint 'history_dataset_association_copied_from_library_dataset_da_fkey' from table 'history_dataset_association' failed.")
|
||||
# Drop all of the new tables above
|
||||
try:
|
||||
UserGroupAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping user_group_association table failed.")
|
||||
try:
|
||||
UserRoleAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping user_role_association table failed.")
|
||||
try:
|
||||
GroupRoleAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping group_role_association table failed.")
|
||||
try:
|
||||
Group_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping galaxy_group table failed.")
|
||||
try:
|
||||
DatasetPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping dataset_permissions table failed.")
|
||||
try:
|
||||
LibraryPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_permissions table failed.")
|
||||
try:
|
||||
LibraryFolderPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder_permissions table failed.")
|
||||
try:
|
||||
LibraryDatasetPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_permissions table failed.")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociationPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_association_permissions table failed.")
|
||||
try:
|
||||
LibraryItemInfoPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_permissions table failed.")
|
||||
try:
|
||||
LibraryItemInfoTemplatePermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template_permissions table failed.")
|
||||
try:
|
||||
DefaultUserPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping default_user_permissions table failed.")
|
||||
try:
|
||||
DefaultHistoryPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping default_history_permissions table failed.")
|
||||
try:
|
||||
Role_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping role table failed.")
|
||||
try:
|
||||
LibraryDatasetDatasetInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_info_association table failed.")
|
||||
try:
|
||||
LibraryDataset_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset table failed.")
|
||||
try:
|
||||
LibraryDatasetDatasetAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_association table failed.")
|
||||
try:
|
||||
LibraryDatasetDatasetInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_info_template_association table failed.")
|
||||
try:
|
||||
JobExternalOutputMetadata_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping job_external_output_metadata table failed.")
|
||||
try:
|
||||
Library_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library table failed.")
|
||||
try:
|
||||
LibraryFolder_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder table failed.")
|
||||
try:
|
||||
LibraryItemInfoTemplateElement_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template_element table failed.")
|
||||
try:
|
||||
LibraryInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_info_template_association table failed.")
|
||||
try:
|
||||
LibraryFolderInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder_info_template_association table failed.")
|
||||
try:
|
||||
LibraryDatasetInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_info_template_association table failed.")
|
||||
try:
|
||||
LibraryInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_info_association table failed.")
|
||||
try:
|
||||
LibraryFolderInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder_info_association table failed.")
|
||||
try:
|
||||
LibraryDatasetInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_info_association table failed.")
|
||||
try:
|
||||
LibraryItemInfoElement_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_element table failed.")
|
||||
try:
|
||||
LibraryItemInfo_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info table failed.")
|
||||
try:
|
||||
LibraryItemInfoTemplate_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template table failed.")
|
||||
TABLES = [
|
||||
UserGroupAssociation_table,
|
||||
UserRoleAssociation_table,
|
||||
GroupRoleAssociation_table,
|
||||
Group_table,
|
||||
DatasetPermissions_table,
|
||||
LibraryPermissions_table,
|
||||
LibraryFolderPermissions_table,
|
||||
LibraryDatasetPermissions_table,
|
||||
LibraryDatasetDatasetAssociationPermissions_table,
|
||||
LibraryItemInfoPermissions_table,
|
||||
LibraryItemInfoTemplatePermissions_table,
|
||||
DefaultUserPermissions_table,
|
||||
DefaultHistoryPermissions_table,
|
||||
Role_table,
|
||||
LibraryDatasetDatasetInfoAssociation_table,
|
||||
LibraryDataset_table,
|
||||
LibraryDatasetDatasetAssociation_table,
|
||||
LibraryDatasetDatasetInfoTemplateAssociation_table,
|
||||
JobExternalOutputMetadata_table,
|
||||
Library_table,
|
||||
LibraryFolder_table,
|
||||
LibraryItemInfoTemplateElement_table,
|
||||
LibraryInfoTemplateAssociation_table,
|
||||
LibraryFolderInfoTemplateAssociation_table,
|
||||
LibraryDatasetInfoTemplateAssociation_table,
|
||||
LibraryInfoAssociation_table,
|
||||
LibraryFolderInfoAssociation_table,
|
||||
LibraryDatasetInfoAssociation_table,
|
||||
LibraryItemInfoElement_table,
|
||||
LibraryItemInfo_table,
|
||||
LibraryItemInfoTemplate_table,
|
||||
]
|
||||
for table in TABLES:
|
||||
drop_table(table)
|
||||
# Drop the index on the Job.state column - changeset 2192
|
||||
drop_index('ix_job_state', 'job', 'state', metadata)
|
||||
# Drop 1 column from the stored_workflow table - changeset 2328
|
||||
try:
|
||||
StoredWorkflow_table = Table("stored_workflow", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
StoredWorkflow_table = None
|
||||
log.debug("Failed loading table stored_workflow")
|
||||
if StoredWorkflow_table is not None:
|
||||
try:
|
||||
col = StoredWorkflow_table.c.importable
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'importable' from stored_workflow table failed.")
|
||||
drop_column('importable', 'stored_workflow', metadata)
|
||||
# Drop 1 column from the metadata_file table
|
||||
try:
|
||||
MetadataFile_table = Table("metadata_file", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
MetadataFile_table = None
|
||||
log.debug("Failed loading table metadata_file")
|
||||
if MetadataFile_table is not None:
|
||||
try:
|
||||
col = MetadataFile_table.c.lda_id
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'lda_id' from metadata_file table failed.")
|
||||
drop_column('lda_id', 'metadata_file', metadata)
|
||||
# Drop 1 column from the history_dataset_association table
|
||||
try:
|
||||
HistoryDatasetAssociation_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
HistoryDatasetAssociation_table = None
|
||||
log.debug("Failed loading table history_dataset_association")
|
||||
if HistoryDatasetAssociation_table is not None:
|
||||
try:
|
||||
col = HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'copied_from_library_dataset_dataset_association_id' from history_dataset_association table failed.")
|
||||
drop_column('copied_from_library_dataset_dataset_association_id', HistoryDatasetAssociation_table)
|
||||
# Drop 2 columns from the galaxy_user table
|
||||
try:
|
||||
User_table = Table("galaxy_user", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
User_table = None
|
||||
log.debug("Failed loading table galaxy_user")
|
||||
if User_table is not None:
|
||||
try:
|
||||
col = User_table.c.deleted
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'deleted' from galaxy_user table failed.")
|
||||
try:
|
||||
col = User_table.c.purged
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'purged' from galaxy_user table failed.")
|
||||
User_table = Table("galaxy_user", metadata, autoload=True)
|
||||
drop_column('deleted', User_table)
|
||||
drop_column('purged', User_table)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
"""
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import (
|
||||
MetaData,
|
||||
@@ -14,21 +15,17 @@ from galaxy.model.migrate.versions.util import (
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
User_table = Table("galaxy_user", metadata, autoload=True)
|
||||
# The next add_index() calls are not needed any more after commit
|
||||
# 7ee93c0995123b0f357abd649326295dfa06766c , but harmless
|
||||
add_index('ix_galaxy_user_deleted', User_table, 'deleted')
|
||||
add_index('ix_galaxy_user_purged', User_table, 'purged')
|
||||
# Set the default data in the galaxy_user table, but only for null values
|
||||
|
||||
@@ -1,18 +1,42 @@
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import errno
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
|
||||
from sqlalchemy import and_, Boolean, Column, DateTime, false, ForeignKey, Integer, MetaData, not_, Numeric, Table, TEXT, true
|
||||
from sqlalchemy.orm import backref, mapper, relation, scoped_session, sessionmaker
|
||||
from sqlalchemy import (
|
||||
and_,
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
false,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
not_,
|
||||
Numeric,
|
||||
Table,
|
||||
TEXT,
|
||||
true
|
||||
)
|
||||
from sqlalchemy.orm import (
|
||||
backref,
|
||||
mapper,
|
||||
relation,
|
||||
scoped_session,
|
||||
sessionmaker
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import MetadataType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
MetadataType,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.metadata import MetadataCollection
|
||||
from galaxy.util.bunch import Bunch
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
context = scoped_session(sessionmaker(autoflush=False, autocommit=True))
|
||||
@@ -690,7 +714,9 @@ def __guess_dataset_by_filename(filename):
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
|
||||
log.debug("Fixing a discrepancy concerning deleted shared history items.")
|
||||
affected_items = 0
|
||||
start_time = time.time()
|
||||
@@ -734,5 +760,4 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
log.debug("Downgrade is not possible.")
|
||||
pass
|
||||
|
||||
@@ -5,18 +5,10 @@ column, specifically 'qual' is changed to be 'qual454'.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import MetaData
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -6,19 +6,24 @@ histories in the same way that workflows are shared.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
HistoryUserShareAssociation_table = Table("history_user_share_association", metadata,
|
||||
@@ -28,48 +33,18 @@ HistoryUserShareAssociation_table = Table("history_user_share_association", meta
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
# Load existing tables
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
# Create the history_user_share_association table
|
||||
try:
|
||||
HistoryUserShareAssociation_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating history_user_share_association table failed.")
|
||||
# Add 1 column to the history table
|
||||
try:
|
||||
History_table = Table("history", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
History_table = None
|
||||
log.debug("Failed loading table history")
|
||||
if History_table is not None:
|
||||
try:
|
||||
col = Column('importable', Boolean, index=True, default=False)
|
||||
col.create(History_table, index_name='ix_history_importable')
|
||||
assert col is History_table.c.importable
|
||||
except Exception:
|
||||
log.exception("Adding column 'importable' to history table failed.")
|
||||
|
||||
create_table(HistoryUserShareAssociation_table)
|
||||
col = Column('importable', Boolean, index=True, default=False)
|
||||
add_column(col, 'history', metadata, index_name='ix_history_importable')
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
# Load existing tables
|
||||
metadata.reflect()
|
||||
# Drop 1 column from the history table
|
||||
try:
|
||||
History_table = Table("history", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
History_table = None
|
||||
log.debug("Failed loading table history")
|
||||
if History_table is not None:
|
||||
try:
|
||||
col = History_table.c.importable
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'importable' from history table failed.")
|
||||
# Drop the history_user_share_association table
|
||||
try:
|
||||
HistoryUserShareAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping history_user_share_association table failed.")
|
||||
|
||||
drop_column('importable', 'history', metadata)
|
||||
drop_table(HistoryUserShareAssociation_table)
|
||||
|
||||
@@ -13,40 +13,47 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from migrate import ForeignKeyConstraint
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import JSONType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
JSONType,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
FormDefinitionCurrent_table = Table('form_definition_current', metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
Column("update_time", DateTime, default=now, onupdate=now),
|
||||
Column("latest_form_id", Integer, index=True),
|
||||
Column("deleted", Boolean, index=True, default=False))
|
||||
|
||||
FormDefinition_table = Table('form_definition', 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_definition_current_id", Integer, ForeignKey("form_definition_current.id"), index=True, nullable=False),
|
||||
Column("form_definition_current_id", Integer, ForeignKey("form_definition_current.id", use_alter=True), index=True, nullable=False),
|
||||
Column("fields", JSONType()))
|
||||
|
||||
FormDefinitionCurrent_table = Table('form_definition_current', metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
Column("update_time", DateTime, default=now, onupdate=now),
|
||||
Column("latest_form_id", Integer, ForeignKey("form_definition.id"), index=True),
|
||||
Column("deleted", Boolean, index=True, default=False))
|
||||
|
||||
FormValues_table = Table('form_values', metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
@@ -101,90 +108,30 @@ SampleEvent_table = Table('sample_event', metadata,
|
||||
Column("sample_state_id", Integer, ForeignKey("sample_state.id"), index=True),
|
||||
Column("comment", TEXT))
|
||||
|
||||
TABLES = [
|
||||
FormDefinition_table,
|
||||
FormDefinitionCurrent_table,
|
||||
FormValues_table,
|
||||
RequestType_table,
|
||||
Request_table,
|
||||
Sample_table,
|
||||
SampleState_table,
|
||||
SampleEvent_table
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
# Add all of the new tables above
|
||||
try:
|
||||
FormDefinitionCurrent_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating form_definition_current table failed.")
|
||||
try:
|
||||
FormDefinition_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating form_definition table failed.")
|
||||
# Add 1 foreign key constraint to the form_definition_current table
|
||||
if FormDefinitionCurrent_table is not None and FormDefinition_table is not None:
|
||||
try:
|
||||
cons = ForeignKeyConstraint([FormDefinitionCurrent_table.c.latest_form_id],
|
||||
[FormDefinition_table.c.id],
|
||||
name='form_definition_current_latest_form_id_fk')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding foreign key constraint 'form_definition_current_latest_form_id_fk' to table 'form_definition_current' failed.")
|
||||
try:
|
||||
FormValues_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating form_values table failed.")
|
||||
try:
|
||||
RequestType_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating request_type table failed.")
|
||||
try:
|
||||
Request_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating request table failed.")
|
||||
try:
|
||||
Sample_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating sample table failed.")
|
||||
try:
|
||||
SampleState_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating sample_state table failed.")
|
||||
try:
|
||||
SampleEvent_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating sample_event table failed.")
|
||||
for table in TABLES:
|
||||
create_table(table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
FormDefinition_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping form_definition table failed.")
|
||||
try:
|
||||
FormDefinitionCurrent_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping form_definition_current table failed.")
|
||||
try:
|
||||
FormValues_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping form_values table failed.")
|
||||
try:
|
||||
Request_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping request table failed.")
|
||||
try:
|
||||
RequestType_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping request_type table failed.")
|
||||
try:
|
||||
Sample_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping sample table failed.")
|
||||
try:
|
||||
SampleState_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping sample_state table failed.")
|
||||
try:
|
||||
SampleEvent_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping sample_event table failed.")
|
||||
for table in reversed(TABLES):
|
||||
drop_table(table)
|
||||
|
||||
@@ -6,21 +6,20 @@ This migration script adds a new column to 2 tables:
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, MetaData
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
MetaData
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -12,21 +12,20 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
# 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)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
HistoryDatasetAssociationDisplayAtAuthorization_table = Table("history_dataset_association_display_at_authorization", metadata,
|
||||
@@ -39,9 +38,8 @@ HistoryDatasetAssociationDisplayAtAuthorization_table = Table("history_dataset_a
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
# Load existing tables
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
HistoryDatasetAssociationDisplayAtAuthorization_table.create()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
This script fixes a problem introduced in the previous migration script
|
||||
0010_hda_display_at_atuhz_table.py . MySQL has a name length limit and
|
||||
0010_hda_display_at_authz_table.py . MySQL has a name length limit and
|
||||
thus the index "ix_hdadaa_history_dataset_association_id" has to be
|
||||
manually created.
|
||||
"""
|
||||
@@ -8,7 +8,6 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import MetaData
|
||||
|
||||
@@ -17,14 +16,8 @@ from galaxy.model.migrate.versions.util import (
|
||||
drop_index,
|
||||
)
|
||||
|
||||
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)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
|
||||
@@ -8,21 +8,27 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
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 (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
UserAddress_table = Table("user_address", metadata,
|
||||
@@ -49,38 +55,19 @@ def upgrade(migrate_engine):
|
||||
metadata.reflect()
|
||||
|
||||
# Add all of the new tables above
|
||||
try:
|
||||
UserAddress_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating user_address table failed.")
|
||||
create_table(UserAddress_table)
|
||||
# Add 1 column to the request_type table
|
||||
try:
|
||||
RequestType_table = Table("request_type", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
RequestType_table = None
|
||||
log.debug("Failed loading table request_type")
|
||||
if RequestType_table is not None:
|
||||
try:
|
||||
col = Column("deleted", Boolean, index=True, default=False)
|
||||
col.create(RequestType_table, index_name='ix_request_type_deleted')
|
||||
assert col is RequestType_table.c.deleted
|
||||
except Exception:
|
||||
log.exception("Adding column 'deleted' to request_type table failed.")
|
||||
col = Column("deleted", Boolean, index=True, default=False)
|
||||
add_column(col, 'request_type', metadata, index_name='ix_request_type_deleted')
|
||||
|
||||
# Delete the submitted column
|
||||
# This fails for sqlite, so skip the drop -- no conflicts in the future
|
||||
try:
|
||||
Request_table = Table("request", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
Request_table = None
|
||||
log.debug("Failed loading table request")
|
||||
if Request_table is not None:
|
||||
# SQLAlchemy Migrate has a bug when dropping a boolean column in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
Request_table.c.submitted.drop()
|
||||
col = Column("state", TrimmedString(255), index=True)
|
||||
col.create(Request_table, index_name='ix_request_state')
|
||||
assert col is Request_table.c.state
|
||||
Request_table = Table("request", metadata, autoload=True)
|
||||
# SQLAlchemy Migrate has a bug when dropping a boolean column in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
drop_column('submitted', Request_table)
|
||||
col = Column("state", TrimmedString(255), index=True)
|
||||
add_column(col, Request_table, index_name='ix_request_state')
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
|
||||
@@ -18,20 +18,41 @@ with a shortened name.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Index, Integer, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Index,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
OLD_TABLE_NAMES = [
|
||||
'library_item_info_permissions',
|
||||
'library_item_info_template_permissions',
|
||||
'library_item_info_element',
|
||||
'library_item_info_template_element',
|
||||
'library_info_template_association',
|
||||
'library_folder_info_template_association',
|
||||
'library_dataset_info_template_association',
|
||||
'library_dataset_dataset_info_template_association',
|
||||
'library_info_association',
|
||||
'library_folder_info_association',
|
||||
'library_dataset_info_association',
|
||||
'library_dataset_dataset_info_association',
|
||||
'library_item_info',
|
||||
'library_item_info_template',
|
||||
]
|
||||
|
||||
LibraryInfoAssociation_table = Table('library_info_association', metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("library_id", Integer, ForeignKey("library.id"), index=True),
|
||||
@@ -50,167 +71,27 @@ LibraryDatasetDatasetInfoAssociation_table = Table('library_dataset_dataset_info
|
||||
Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True),
|
||||
Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True))
|
||||
|
||||
NEW_TABLES = [
|
||||
LibraryInfoAssociation_table,
|
||||
LibraryFolderInfoAssociation_table,
|
||||
LibraryDatasetDatasetInfoAssociation_table
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
# Load existing tables
|
||||
metadata.reflect()
|
||||
|
||||
# Drop all of the original library_item_info tables
|
||||
# NOTE: all existing library item into template data is eliminated here via table drops
|
||||
try:
|
||||
LibraryItemInfoPermissions_table = Table("library_item_info_permissions", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfoPermissions_table = None
|
||||
log.debug("Failed loading table library_item_info_permissions")
|
||||
try:
|
||||
LibraryItemInfoPermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_permissions table failed.")
|
||||
|
||||
try:
|
||||
LibraryItemInfoTemplatePermissions_table = Table("library_item_info_template_permissions", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfoTemplatePermissions_table = None
|
||||
log.debug("Failed loading table library_item_info_template_permissions")
|
||||
try:
|
||||
LibraryItemInfoTemplatePermissions_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template_permissions table failed.")
|
||||
|
||||
try:
|
||||
LibraryItemInfoElement_table = Table("library_item_info_element", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfoElement_table = None
|
||||
log.debug("Failed loading table library_item_info_element")
|
||||
try:
|
||||
LibraryItemInfoElement_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_element table failed.")
|
||||
|
||||
try:
|
||||
LibraryItemInfoTemplateElement_table = Table("library_item_info_template_element", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfoTemplateElement_table = None
|
||||
log.debug("Failed loading table library_item_info_template_element")
|
||||
try:
|
||||
LibraryItemInfoTemplateElement_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template_element table failed.")
|
||||
|
||||
try:
|
||||
LibraryInfoTemplateAssociation_table = Table("library_info_template_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryInfoTemplateAssociation_table = None
|
||||
log.debug("Failed loading table library_info_template_association")
|
||||
try:
|
||||
LibraryInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_info_template_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryFolderInfoTemplateAssociation_table = Table("library_folder_info_template_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryFolderInfoTemplateAssociation_table = None
|
||||
log.debug("Failed loading table library_folder_info_template_association")
|
||||
try:
|
||||
LibraryFolderInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder_info_template_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryDatasetInfoTemplateAssociation_table = Table("library_dataset_info_template_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetInfoTemplateAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_info_template_association")
|
||||
try:
|
||||
LibraryDatasetInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_info_template_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryDatasetDatasetInfoTemplateAssociation_table = Table("library_dataset_dataset_info_template_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetInfoTemplateAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_info_template_association")
|
||||
try:
|
||||
LibraryDatasetDatasetInfoTemplateAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_info_template_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryInfoAssociation_table = Table("library_info_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryInfoAssociation_table = None
|
||||
log.debug("Failed loading table library_info_association")
|
||||
try:
|
||||
LibraryInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_info_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryFolderInfoAssociation_table = Table("library_folder_info_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryFolderInfoAssociation_table = None
|
||||
log.debug("Failed loading table library_folder_info_association")
|
||||
try:
|
||||
LibraryFolderInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_folder_info_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryDatasetInfoAssociation_table = Table("library_dataset_info_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetInfoAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_info_association")
|
||||
try:
|
||||
LibraryDatasetInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_info_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryDatasetDatasetInfoAssociation_table = Table("library_dataset_dataset_info_association", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryDatasetDatasetInfoAssociation_table = None
|
||||
log.debug("Failed loading table library_dataset_dataset_info_association")
|
||||
try:
|
||||
LibraryDatasetDatasetInfoAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_dataset_dataset_info_association table failed.")
|
||||
|
||||
try:
|
||||
LibraryItemInfo_table = Table("library_item_info", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfo_table = None
|
||||
log.debug("Failed loading table library_item_info")
|
||||
try:
|
||||
LibraryItemInfo_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info table failed.")
|
||||
|
||||
try:
|
||||
LibraryItemInfoTemplate_table = Table("library_item_info_template", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryItemInfoTemplate_table = None
|
||||
log.debug("Failed loading table library_item_info_template")
|
||||
try:
|
||||
LibraryItemInfoTemplate_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping library_item_info_template table failed.")
|
||||
for table_name in OLD_TABLE_NAMES:
|
||||
drop_table(table_name, metadata)
|
||||
|
||||
# Create all new tables above
|
||||
try:
|
||||
LibraryInfoAssociation_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating library_info_association table failed.")
|
||||
try:
|
||||
LibraryFolderInfoAssociation_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating library_folder_info_association table failed.")
|
||||
try:
|
||||
LibraryDatasetDatasetInfoAssociation_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating library_dataset_dataset_info_association table failed.")
|
||||
for table in NEW_TABLES:
|
||||
create_table(table)
|
||||
|
||||
# Fix index on LibraryDatasetDatasetInfoAssociation_table for mysql
|
||||
if migrate_engine.name == 'mysql':
|
||||
# Load existing tables
|
||||
@@ -223,5 +104,4 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
log.debug("Downgrade is not possible.")
|
||||
pass
|
||||
|
||||
@@ -5,17 +5,14 @@ library_dataset.name, library_dataset_dataset_association.name.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Index, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Index,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -6,79 +6,54 @@ to the form_definition table.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from migrate import ForeignKeyConstraint
|
||||
from sqlalchemy import Column, Integer, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import JSONType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
JSONType,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
# Load existing tables
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
# Create the folder_id column
|
||||
try:
|
||||
Request_table = Table("request", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
Request_table = None
|
||||
log.debug("Failed loading table request")
|
||||
if Request_table is not None:
|
||||
Request_table = Table("request", metadata, autoload=True)
|
||||
col = Column("folder_id", Integer, index=True)
|
||||
add_column(col, Request_table, index_name='ix_request_folder_id')
|
||||
LibraryFolder_table = Table("library_folder", metadata, autoload=True)
|
||||
# Add 1 foreign key constraint to the library_folder table
|
||||
if migrate_engine.name != 'sqlite':
|
||||
try:
|
||||
col = Column("folder_id", Integer, index=True)
|
||||
col.create(Request_table, index_name='ix_request_folder_id')
|
||||
assert col is Request_table.c.folder_id
|
||||
cons = ForeignKeyConstraint([Request_table.c.folder_id],
|
||||
[LibraryFolder_table.c.id],
|
||||
name='request_folder_id_fk')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding column 'folder_id' to request table failed.")
|
||||
try:
|
||||
LibraryFolder_table = Table("library_folder", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
LibraryFolder_table = None
|
||||
log.debug("Failed loading table library_folder")
|
||||
# Add 1 foreign key constraint to the library_folder table
|
||||
if migrate_engine.name != 'sqlite' and Request_table is not None and LibraryFolder_table is not None:
|
||||
try:
|
||||
cons = ForeignKeyConstraint([Request_table.c.folder_id],
|
||||
[LibraryFolder_table.c.id],
|
||||
name='request_folder_id_fk')
|
||||
# Create the constraint
|
||||
cons.create()
|
||||
except Exception:
|
||||
log.exception("Adding foreign key constraint 'request_folder_id_fk' to table 'library_folder' failed.")
|
||||
log.exception("Adding foreign key constraint 'request_folder_id_fk' to table 'library_folder' failed.")
|
||||
# Create the type column in form_definition
|
||||
try:
|
||||
FormDefinition_table = Table("form_definition", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
FormDefinition_table = None
|
||||
log.debug("Failed loading table form_definition")
|
||||
if FormDefinition_table is not None:
|
||||
try:
|
||||
col = Column("type", TrimmedString(255), index=True)
|
||||
col.create(FormDefinition_table, index_name='ix_form_definition_type')
|
||||
assert col is FormDefinition_table.c.type
|
||||
except Exception:
|
||||
log.exception("Adding column 'type' to form_definition table failed.")
|
||||
try:
|
||||
col = Column("layout", JSONType())
|
||||
col.create(FormDefinition_table)
|
||||
assert col is FormDefinition_table.c.layout
|
||||
except Exception:
|
||||
log.exception("Adding column 'layout' to form_definition table failed.")
|
||||
FormDefinition_table = Table("form_definition", metadata, autoload=True)
|
||||
col = Column("type", TrimmedString(255), index=True)
|
||||
add_column(col, FormDefinition_table, index_name='ix_form_definition_type')
|
||||
col = Column("layout", JSONType())
|
||||
add_column(col, FormDefinition_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
pass
|
||||
|
||||
@@ -8,7 +8,6 @@ column.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
@@ -29,13 +28,6 @@ from galaxy.model.migrate.versions.util import (
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
JobToOutputLibraryDataset_table = Table("job_to_output_library_dataset", metadata,
|
||||
|
||||
@@ -6,7 +6,15 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Index, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_index,
|
||||
drop_index
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
@@ -20,16 +28,13 @@ def upgrade(migrate_engine):
|
||||
Page_table = Table("page", metadata, autoload=True)
|
||||
try:
|
||||
# Sqlite doesn't support .alter, so we need to drop an recreate
|
||||
i = Index("ix_page_slug", Page_table.c.slug)
|
||||
i.drop()
|
||||
drop_index("ix_page_slug", Page_table, 'slug')
|
||||
|
||||
i = Index("ix_page_slug", Page_table.c.slug, unique=False)
|
||||
i.create()
|
||||
add_index("ix_page_slug", Page_table, 'slug', unique=False)
|
||||
except Exception:
|
||||
# Mysql doesn't have a named index, but alter should work
|
||||
Page_table.c.slug.alter(unique=False)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
pass
|
||||
|
||||
@@ -4,7 +4,6 @@ This script adds a foreign key to the form_values table in the galaxy_user table
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
@@ -13,16 +12,12 @@ from sqlalchemy import (
|
||||
MetaData
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -6,22 +6,27 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import localtimestamp, nextval
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_column,
|
||||
localtimestamp,
|
||||
nextval
|
||||
)
|
||||
|
||||
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)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
RequestEvent_table = Table('request_event', metadata,
|
||||
@@ -38,13 +43,8 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
# Add new request_event table
|
||||
try:
|
||||
RequestEvent_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating request_event table failed.")
|
||||
create_table(RequestEvent_table)
|
||||
# move the current state of all existing requests to the request_event table
|
||||
|
||||
cmd = \
|
||||
"INSERT INTO request_event " + \
|
||||
"SELECT %s AS id," + \
|
||||
@@ -59,16 +59,7 @@ def upgrade(migrate_engine):
|
||||
|
||||
if migrate_engine.name != 'sqlite':
|
||||
# Delete the state column
|
||||
try:
|
||||
Request_table = Table("request", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
Request_table = None
|
||||
log.debug("Failed loading table request")
|
||||
if Request_table is not None:
|
||||
try:
|
||||
Request_table.c.state.drop()
|
||||
except Exception:
|
||||
log.exception("Deleting column 'state' to request table failed.")
|
||||
drop_column('state', 'request', metadata)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
|
||||
@@ -6,35 +6,33 @@ set up with read-only access to database/files
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, MetaData, String, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
String,
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
# Load existing tables
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
job_external_output_metadata = Table("job_external_output_metadata", metadata, autoload=True)
|
||||
col = Column("filename_override_metadata", String(255))
|
||||
col.create(job_external_output_metadata)
|
||||
assert col is job_external_output_metadata.c.filename_override_metadata
|
||||
except Exception:
|
||||
log.exception("Adding column 'filename_override_metadata' to job_external_output_metadata table failed.")
|
||||
|
||||
col = Column("filename_override_metadata", String(255))
|
||||
add_column(col, 'job_external_output_metadata', metadata)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
pass
|
||||
metadata.reflect()
|
||||
|
||||
drop_column('filename_override_metadata', 'job_external_output_metadata', metadata)
|
||||
|
||||
@@ -8,7 +8,6 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
@@ -26,15 +25,8 @@ from galaxy.model.migrate.versions.util import (
|
||||
drop_column
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
|
||||
@@ -5,15 +5,20 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
Library_table = Table("library", metadata, autoload=True)
|
||||
|
||||
@@ -6,11 +6,20 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
@@ -6,9 +6,20 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
@@ -21,14 +32,11 @@ def upgrade(migrate_engine):
|
||||
|
||||
# 1) Drop
|
||||
for table_name in ["workflow_invocation_step", "workflow_invocation"]:
|
||||
try:
|
||||
t = Table(table_name, metadata, autoload=True)
|
||||
t.drop()
|
||||
metadata.remove(t)
|
||||
except Exception:
|
||||
log.exception("Failed to drop table '%s', ignoring (might result in wrong schema)" % table_name)
|
||||
t = Table(table_name, metadata, autoload=True)
|
||||
drop_table(t)
|
||||
metadata.remove(t)
|
||||
|
||||
# 2) Readd
|
||||
# 2) Re-add
|
||||
WorkflowInvocation_table = Table("workflow_invocation", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
@@ -44,13 +52,8 @@ def upgrade(migrate_engine):
|
||||
Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=True))
|
||||
|
||||
for table in [WorkflowInvocation_table, WorkflowInvocationStep_table]:
|
||||
try:
|
||||
table.create()
|
||||
except Exception:
|
||||
log.exception("Failed to create table '%s', ignoring (might result in wrong schema)" % table.name)
|
||||
create_table(table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
# No downgrade
|
||||
pass
|
||||
|
||||
@@ -5,12 +5,21 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, String, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
|
||||
@@ -21,27 +30,15 @@ PostJobAction_table = Table("post_job_action", metadata,
|
||||
Column("output_name", String(255), nullable=True),
|
||||
Column("action_arguments", JSONType, nullable=True))
|
||||
|
||||
# PostJobActionAssociation_table = Table("post_job_action_association", metadata,
|
||||
# Column("id", Integer, primary_key=True),
|
||||
# Column("post_job_action_id", Integer, ForeignKey("post_job_action.id"), index=True, nullable=False),
|
||||
# Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=False))
|
||||
|
||||
tables = [PostJobAction_table] # , PostJobActionAssociation_table]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
try:
|
||||
table.create()
|
||||
except Exception:
|
||||
log.exception("Failed to create table '%s', ignoring (might result in wrong schema)" % table.name)
|
||||
create_table(PostJobAction_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
table.drop()
|
||||
drop_table(PostJobAction_table)
|
||||
|
||||
@@ -4,21 +4,21 @@ Add a user_id column to the job table.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
@@ -27,37 +27,32 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
Job_table = Table("job", metadata, autoload=True)
|
||||
# SQLAlchemy Migrate has a bug when adding a column with both a ForeignKey and a index in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
col = Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True)
|
||||
else:
|
||||
col = Column("user_id", Integer, nullable=True)
|
||||
add_column(col, Job_table, index_name='ix_job_user_id')
|
||||
try:
|
||||
Job_table = Table("job", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
Job_table = None
|
||||
log.debug("Failed loading table job")
|
||||
if Job_table is not None:
|
||||
# SQLAlchemy Migrate has a bug when adding a column with both a ForeignKey and a index in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
col = Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True)
|
||||
else:
|
||||
col = Column("user_id", Integer, nullable=True)
|
||||
add_column(col, Job_table, index_name='ix_job_user_id')
|
||||
try:
|
||||
cmd = "SELECT job.id AS galaxy_job_id, " \
|
||||
+ "galaxy_session.user_id AS galaxy_user_id " \
|
||||
+ "FROM job " \
|
||||
+ "JOIN galaxy_session ON job.session_id = galaxy_session.id;"
|
||||
job_users = migrate_engine.execute(cmd).fetchall()
|
||||
print("Updating user_id column in job table for ", len(job_users), " rows...")
|
||||
print("")
|
||||
update_count = 0
|
||||
for row in job_users:
|
||||
if row.galaxy_user_id:
|
||||
cmd = "UPDATE job SET user_id = %d WHERE id = %d" % (int(row.galaxy_user_id), int(row.galaxy_job_id))
|
||||
update_count += 1
|
||||
migrate_engine.execute(cmd)
|
||||
print("Updated the user_id column for ", update_count, " rows in the job table. ")
|
||||
print(len(job_users) - update_count, " rows have no user_id since the value was NULL in the galaxy_session table.")
|
||||
print("")
|
||||
except Exception:
|
||||
log.exception("Updating job.user_id column failed.")
|
||||
cmd = "SELECT job.id AS galaxy_job_id, " \
|
||||
+ "galaxy_session.user_id AS galaxy_user_id " \
|
||||
+ "FROM job " \
|
||||
+ "JOIN galaxy_session ON job.session_id = galaxy_session.id;"
|
||||
job_users = migrate_engine.execute(cmd).fetchall()
|
||||
print("Updating user_id column in job table for ", len(job_users), " rows...")
|
||||
print("")
|
||||
update_count = 0
|
||||
for row in job_users:
|
||||
if row.galaxy_user_id:
|
||||
cmd = "UPDATE job SET user_id = %d WHERE id = %d" % (int(row.galaxy_user_id), int(row.galaxy_job_id))
|
||||
update_count += 1
|
||||
migrate_engine.execute(cmd)
|
||||
print("Updated column 'user_id' for ", update_count, " rows of table 'job'.")
|
||||
print(len(job_users) - update_count, " rows have no user_id since the value was NULL in the galaxy_session table.")
|
||||
print("")
|
||||
except Exception:
|
||||
log.exception("Updating column 'user_id' of table 'job' failed.")
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
|
||||
@@ -4,21 +4,19 @@ Add a state column to the history_dataset_association and library_dataset_datase
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
DATASET_INSTANCE_TABLE_NAMES = ['history_dataset_association', 'library_dataset_dataset_association']
|
||||
@@ -29,36 +27,15 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
dataset_instance_tables = []
|
||||
for table_name in DATASET_INSTANCE_TABLE_NAMES:
|
||||
try:
|
||||
dataset_instance_tables.append((table_name, Table(table_name, metadata, autoload=True)))
|
||||
except NoSuchTableError:
|
||||
log.debug("Failed loading table %s" % table_name)
|
||||
if dataset_instance_tables:
|
||||
for table_name, dataset_instance_table in dataset_instance_tables:
|
||||
index_name = "ix_%s_state" % table_name
|
||||
try:
|
||||
col = Column("state", TrimmedString(64), index=True, nullable=True)
|
||||
col.create(dataset_instance_table, index_name=index_name)
|
||||
assert col is dataset_instance_table.c.state
|
||||
except Exception:
|
||||
log.exception("Adding column 'state' to %s table failed.", table_name)
|
||||
col = Column("state", TrimmedString(64), index=True, nullable=True)
|
||||
index_name = "ix_%s_state" % table_name
|
||||
add_column(col, table_name, metadata, index_name=index_name)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
dataset_instance_tables = []
|
||||
|
||||
for table_name in DATASET_INSTANCE_TABLE_NAMES:
|
||||
try:
|
||||
dataset_instance_tables.append((table_name, Table(table_name, metadata, autoload=True)))
|
||||
except NoSuchTableError:
|
||||
log.debug("Failed loading table %s" % table_name)
|
||||
if dataset_instance_tables:
|
||||
for table_name, dataset_instance_table in dataset_instance_tables:
|
||||
try:
|
||||
col = dataset_instance_table.c.state
|
||||
col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column 'state' from %s table failed.", table_name)
|
||||
drop_column('state', table_name, metadata)
|
||||
|
||||
@@ -75,5 +75,4 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
pass
|
||||
|
||||
@@ -5,11 +5,21 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, String, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
metadata = MetaData()
|
||||
|
||||
WorkflowOutput_table = Table("workflow_output", metadata,
|
||||
@@ -17,22 +27,15 @@ WorkflowOutput_table = Table("workflow_output", metadata,
|
||||
Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False),
|
||||
Column("output_name", String(255), nullable=True))
|
||||
|
||||
tables = [WorkflowOutput_table]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
try:
|
||||
table.create()
|
||||
except Exception:
|
||||
log.warning("Failed to create table '%s', ignoring (might result in wrong schema)" % table.name)
|
||||
create_table(WorkflowOutput_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
table.drop()
|
||||
drop_table(WorkflowOutput_table)
|
||||
|
||||
@@ -49,5 +49,4 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
pass
|
||||
|
||||
@@ -6,11 +6,25 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, String, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
Task_table = Table("task", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
@@ -29,22 +43,17 @@ Task_table = Table("task", metadata,
|
||||
Column("task_runner_name", String(255)),
|
||||
Column("task_runner_external_id", String(255)))
|
||||
|
||||
tables = [Task_table]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
try:
|
||||
table.create()
|
||||
except Exception:
|
||||
log.warning("Failed to create table '%s', ignoring (might result in wrong schema)" % table.name)
|
||||
|
||||
create_table(Task_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
for table in tables:
|
||||
table.drop()
|
||||
|
||||
drop_table(Task_table)
|
||||
|
||||
@@ -6,41 +6,36 @@ table, the 'content' column is now a JSON dict instead of a list.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
from json import dumps, loads
|
||||
from json import (
|
||||
dumps,
|
||||
loads
|
||||
)
|
||||
|
||||
from sqlalchemy import MetaData, Table
|
||||
from sqlalchemy import (
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import _sniffnfix_pg9_hex
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
Table("form_definition", metadata, autoload=True)
|
||||
except Exception:
|
||||
log.exception("Loading 'form_definition' table failed.")
|
||||
try:
|
||||
Table("form_values", metadata, autoload=True)
|
||||
except Exception:
|
||||
log.exception("Loading 'form_values' table failed.")
|
||||
|
||||
Table("form_definition", metadata, autoload=True)
|
||||
Table("form_values", metadata, autoload=True)
|
||||
|
||||
def get_value(lst, index):
|
||||
try:
|
||||
return str(lst[index]).replace("'", "''")
|
||||
except IndexError:
|
||||
return ''
|
||||
|
||||
# Go through the entire table and add a 'name' attribute for each field
|
||||
# in the list of fields for each form definition
|
||||
cmd = "SELECT f.id, f.fields FROM form_definition AS f"
|
||||
@@ -89,14 +84,9 @@ def upgrade(migrate_engine):
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
Table("form_definition", metadata, autoload=True)
|
||||
except Exception:
|
||||
log.exception("Loading 'form_definition' table failed.")
|
||||
try:
|
||||
Table("form_values", metadata, autoload=True)
|
||||
except Exception:
|
||||
log.exception("Loading 'form_values' table failed.")
|
||||
|
||||
Table("form_definition", metadata, autoload=True)
|
||||
Table("form_values", metadata, autoload=True)
|
||||
# remove the name attribute in the content column JSON dict in the form_values table
|
||||
# and restore it to a list of values
|
||||
cmd = "SELECT form_values.id, form_values.content, form_definition.fields" \
|
||||
|
||||
@@ -9,11 +9,22 @@ from __future__ import print_function
|
||||
import logging
|
||||
from json import dumps, loads
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import localtimestamp, nextval
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column,
|
||||
engine_false,
|
||||
localtimestamp,
|
||||
nextval
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
@@ -28,17 +39,6 @@ def get_latest_id(migrate_engine, table):
|
||||
raise Exception('Unable to get the latest id in the %s table.' % table)
|
||||
|
||||
|
||||
def boolean(migrate_engine, value):
|
||||
if migrate_engine.name in ['mysql', 'postgres', 'postgresql']:
|
||||
return value
|
||||
elif migrate_engine.name == 'sqlite':
|
||||
if value in ['True', 'true']:
|
||||
return 1
|
||||
return 0
|
||||
else:
|
||||
raise Exception('Unable to convert data for unknown database type: %s' % migrate_engine.name)
|
||||
|
||||
|
||||
def create_sequencer_form_definition(migrate_engine):
|
||||
'''
|
||||
Create a new form_definition containing 5 fields (host, username, password,
|
||||
@@ -46,12 +46,12 @@ def create_sequencer_form_definition(migrate_engine):
|
||||
dict in the request_type table
|
||||
'''
|
||||
# create new form_definition_current in the db
|
||||
cmd = "INSERT INTO form_definition_current VALUES ( %s, %s, %s, %s, %s )"
|
||||
cmd = cmd % (nextval(migrate_engine, 'form_definition_current'),
|
||||
localtimestamp(migrate_engine),
|
||||
localtimestamp(migrate_engine),
|
||||
'NULL',
|
||||
boolean(migrate_engine, 'false'))
|
||||
cmd = "INSERT INTO form_definition_current VALUES ( %s, %s, %s, %s, %s )" % (
|
||||
nextval(migrate_engine, 'form_definition_current'),
|
||||
localtimestamp(migrate_engine),
|
||||
localtimestamp(migrate_engine),
|
||||
'NULL',
|
||||
engine_false(migrate_engine))
|
||||
migrate_engine.execute(cmd)
|
||||
# get this form_definition_current id
|
||||
form_definition_current_id = get_latest_id(migrate_engine, 'form_definition_current')
|
||||
@@ -149,17 +149,17 @@ def add_sequencer(migrate_engine, sequencer_index, sequencer_form_definition_id,
|
||||
desc = ''
|
||||
version = ''
|
||||
sequencer_type_id = 'simple_unknown_sequencer'
|
||||
cmd = "INSERT INTO sequencer VALUES ( %s, %s, %s, '%s', '%s', '%s', '%s', %s, %s, %s )"
|
||||
cmd = cmd % (nextval(migrate_engine, 'sequencer'),
|
||||
localtimestamp(migrate_engine),
|
||||
localtimestamp(migrate_engine),
|
||||
name,
|
||||
desc,
|
||||
sequencer_type_id,
|
||||
version,
|
||||
sequencer_form_definition_id,
|
||||
sequencer_form_values_id,
|
||||
boolean(migrate_engine, 'false'))
|
||||
cmd = "INSERT INTO sequencer VALUES ( %s, %s, %s, '%s', '%s', '%s', '%s', %s, %s, %s )" % (
|
||||
nextval(migrate_engine, 'sequencer'),
|
||||
localtimestamp(migrate_engine),
|
||||
localtimestamp(migrate_engine),
|
||||
name,
|
||||
desc,
|
||||
sequencer_type_id,
|
||||
version,
|
||||
sequencer_form_definition_id,
|
||||
sequencer_form_values_id,
|
||||
engine_false(migrate_engine))
|
||||
migrate_engine.execute(cmd)
|
||||
return get_latest_id(migrate_engine, 'sequencer')
|
||||
|
||||
@@ -175,28 +175,10 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
RequestType_table = Table("request_type", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
RequestType_table = None
|
||||
log.debug("Failed loading table 'request_type'")
|
||||
if RequestType_table is None:
|
||||
return
|
||||
# load the sequencer table
|
||||
try:
|
||||
Sequencer_table = Table("sequencer", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
Sequencer_table = None
|
||||
log.debug("Failed loading table 'sequencer'")
|
||||
if Sequencer_table is None:
|
||||
return
|
||||
RequestType_table = Table("request_type", metadata, autoload=True)
|
||||
# create foreign key field to the sequencer table in the request_type table
|
||||
try:
|
||||
col = Column("sequencer_id", Integer, ForeignKey("sequencer.id"), nullable=True)
|
||||
col.create(RequestType_table)
|
||||
assert col is RequestType_table.c.sequencer_id
|
||||
except Exception:
|
||||
log.exception("Creating column 'sequencer_id' in the 'request_type' table failed.")
|
||||
col = Column("sequencer_id", Integer, ForeignKey("sequencer.id"), nullable=True)
|
||||
add_column(col, RequestType_table)
|
||||
# copy the sequencer information contained in the 'datatx_info' column
|
||||
# of the request_type table to the form values referenced in the sequencer table
|
||||
cmd = "SELECT id, name, datatx_info FROM request_type ORDER BY id ASC"
|
||||
@@ -231,50 +213,35 @@ def upgrade(migrate_engine):
|
||||
sequencer_index = sequencer_index + 1
|
||||
|
||||
# Finally delete the 'datatx_info' column from the request_type table
|
||||
try:
|
||||
RequestType_table.c.datatx_info.drop()
|
||||
except Exception:
|
||||
log.exception("Deleting column 'datatx_info' in the 'request_type' table failed.")
|
||||
drop_column('datatx_info', RequestType_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
RequestType_table = Table("request_type", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
RequestType_table = None
|
||||
log.debug("Failed loading table 'request_type'")
|
||||
if RequestType_table is not None:
|
||||
# create the 'datatx_info' column
|
||||
try:
|
||||
col = Column("datatx_info", JSONType())
|
||||
col.create(RequestType_table)
|
||||
assert col is RequestType_table.c.datatx_info
|
||||
except Exception:
|
||||
log.exception("Creating column 'datatx_info' in the 'request_type' table failed.")
|
||||
# restore the datatx_info column data in the request_type table with data from
|
||||
# the sequencer and the form_values table
|
||||
cmd = "SELECT request_type.id, form_values.content "\
|
||||
+ " FROM request_type, sequencer, form_values "\
|
||||
+ " WHERE request_type.sequencer_id=sequencer.id AND sequencer.form_values_id=form_values.id "\
|
||||
+ " ORDER BY request_type.id ASC"
|
||||
result = migrate_engine.execute(cmd)
|
||||
for row in result:
|
||||
request_type_id = row[0]
|
||||
seq_values = loads(str(row[1]))
|
||||
# create the datatx_info json dict
|
||||
datatx_info = dumps(dict(host=seq_values.get('field_0', ''),
|
||||
username=seq_values.get('field_1', ''),
|
||||
password=seq_values.get('field_2', ''),
|
||||
data_dir=seq_values.get('field_3', ''),
|
||||
rename_dataset=seq_values.get('field_4', '')))
|
||||
# update the column
|
||||
cmd = "UPDATE request_type SET datatx_info='%s' WHERE id=%i" % (datatx_info, request_type_id)
|
||||
migrate_engine.execute(cmd)
|
||||
# delete foreign key field to the sequencer table in the request_type table
|
||||
try:
|
||||
RequestType_table.c.sequencer_id.drop()
|
||||
except Exception:
|
||||
log.exception("Deleting column 'sequencer_id' in the 'request_type' table failed.")
|
||||
RequestType_table = Table("request_type", metadata, autoload=True)
|
||||
# create the 'datatx_info' column
|
||||
col = Column("datatx_info", JSONType())
|
||||
add_column(col, RequestType_table)
|
||||
# restore the datatx_info column data in the request_type table with data from
|
||||
# the sequencer and the form_values table
|
||||
cmd = "SELECT request_type.id, form_values.content "\
|
||||
+ " FROM request_type, sequencer, form_values "\
|
||||
+ " WHERE request_type.sequencer_id=sequencer.id AND sequencer.form_values_id=form_values.id "\
|
||||
+ " ORDER BY request_type.id ASC"
|
||||
result = migrate_engine.execute(cmd)
|
||||
for row in result:
|
||||
request_type_id = row[0]
|
||||
seq_values = loads(str(row[1]))
|
||||
# create the datatx_info json dict
|
||||
datatx_info = dumps(dict(host=seq_values.get('field_0', ''),
|
||||
username=seq_values.get('field_1', ''),
|
||||
password=seq_values.get('field_2', ''),
|
||||
data_dir=seq_values.get('field_3', ''),
|
||||
rename_dataset=seq_values.get('field_4', '')))
|
||||
# update the column
|
||||
cmd = "UPDATE request_type SET datatx_info='%s' WHERE id=%i" % (datatx_info, request_type_id)
|
||||
migrate_engine.execute(cmd)
|
||||
# delete foreign key field to the sequencer table in the request_type table
|
||||
drop_column('sequencer_id', RequestType_table)
|
||||
|
||||
@@ -86,5 +86,4 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
pass
|
||||
|
||||
@@ -5,22 +5,25 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New table to store information about cloned tool shed repositories.
|
||||
@@ -40,16 +43,12 @@ def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolShedRepository_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating tool_shed_repository table failed.")
|
||||
|
||||
create_table(ToolShedRepository_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolShedRepository_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping tool_shed_repository table failed.")
|
||||
|
||||
drop_table(ToolShedRepository_table)
|
||||
|
||||
@@ -4,21 +4,22 @@ Migration script to add the metadata, update_available and includes_datatypes co
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column, engine_false
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column,
|
||||
engine_false
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -5,22 +5,25 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, Integer, MetaData, String, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
ToolIdGuidMap_table = Table("tool_id_guid_map", metadata,
|
||||
@@ -36,19 +39,15 @@ ToolIdGuidMap_table = Table("tool_id_guid_map", metadata,
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolIdGuidMap_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating tool_id_guid_map table failed.")
|
||||
|
||||
create_table(ToolIdGuidMap_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolIdGuidMap_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping tool_id_guid_map table failed.")
|
||||
|
||||
drop_table(ToolIdGuidMap_table)
|
||||
|
||||
@@ -4,35 +4,29 @@ Migration script to add the installed_changeset_revision column to the tool_shed
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
|
||||
col = Column("installed_changeset_revision", TrimmedString(255))
|
||||
try:
|
||||
col.create(ToolShedRepository_table)
|
||||
assert col is ToolShedRepository_table.c.installed_changeset_revision
|
||||
except Exception:
|
||||
log.exception("Adding installed_changeset_revision column to the tool_shed_repository table failed.")
|
||||
add_column(col, 'tool_shed_repository', metadata)
|
||||
# Update each row by setting the value of installed_changeset_revison to be the value of changeset_revision.
|
||||
# This will be problematic if the value of changeset_revision was updated to something other than the value
|
||||
# that it was when the repository was installed (because the install path determined in real time will attempt to
|
||||
@@ -50,14 +44,11 @@ def upgrade(migrate_engine):
|
||||
+ "WHERE changeset_revision = '%s';" % row.changeset_revision
|
||||
migrate_engine.execute(cmd)
|
||||
update_count += 1
|
||||
print("Updated the installed_changeset_revision column for ", update_count, " rows in the tool_shed_repository table. ")
|
||||
print("Updated the installed_changeset_revision column for ", update_count, " rows in the tool_shed_repository table.")
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
try:
|
||||
ToolShedRepository_table.c.installed_changeset_revision.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column installed_changeset_revision from the tool_shed_repository table failed.")
|
||||
|
||||
drop_column('installed_changeset_revision', 'tool_shed_repository', metadata)
|
||||
|
||||
@@ -4,20 +4,21 @@ Migration script to add the uninstalled and dist_to_shed columns to the tool_she
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import drop_column, engine_false
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column,
|
||||
engine_false
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
@@ -28,19 +29,17 @@ def upgrade(migrate_engine):
|
||||
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
c = Column("uninstalled", Boolean, default=False)
|
||||
add_column(c, ToolShedRepository_table, metadata)
|
||||
try:
|
||||
c.create(ToolShedRepository_table)
|
||||
assert c is ToolShedRepository_table.c.uninstalled
|
||||
migrate_engine.execute("UPDATE tool_shed_repository SET uninstalled=%s" % engine_false(migrate_engine))
|
||||
except Exception:
|
||||
log.exception("Adding uninstalled column to the tool_shed_repository table failed.")
|
||||
log.exception("Updating column 'uninstalled' of table 'tool_shed_repository' failed.")
|
||||
c = Column("dist_to_shed", Boolean, default=False)
|
||||
add_column(c, ToolShedRepository_table, metadata)
|
||||
try:
|
||||
c.create(ToolShedRepository_table)
|
||||
assert c is ToolShedRepository_table.c.dist_to_shed
|
||||
migrate_engine.execute("UPDATE tool_shed_repository SET dist_to_shed=%s" % engine_false(migrate_engine))
|
||||
except Exception:
|
||||
log.exception("Adding dist_to_shed column to the tool_shed_repository table failed.")
|
||||
log.exception("Updating column 'dist_to_shed' of table 'tool_shed_repository' failed.")
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
|
||||
@@ -5,23 +5,30 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
from json import loads
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, String, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import _sniffnfix_pg9_hex, TrimmedString
|
||||
from galaxy.model.migrate.versions.util import localtimestamp, nextval
|
||||
from galaxy.model.custom_types import (
|
||||
_sniffnfix_pg9_hex,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
localtimestamp,
|
||||
nextval
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
|
||||
@@ -4,21 +4,22 @@ Migration script to create the migrate_tools table.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
MigrateTools_table = Table("migrate_tools", metadata,
|
||||
@@ -28,23 +29,20 @@ MigrateTools_table = Table("migrate_tools", metadata,
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
# Create the table.
|
||||
|
||||
create_table(MigrateTools_table)
|
||||
try:
|
||||
MigrateTools_table.create()
|
||||
cmd = "INSERT INTO migrate_tools VALUES ('GalaxyTools', 'lib/galaxy/tool_shed/migrate', %d)" % 1
|
||||
migrate_engine.execute(cmd)
|
||||
except Exception:
|
||||
log.exception("Creating migrate_tools table failed.")
|
||||
log.exception("Inserting into table 'migrate_tools' failed.")
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
MigrateTools_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping migrate_tools table failed.")
|
||||
|
||||
drop_table(MigrateTools_table)
|
||||
|
||||
@@ -4,42 +4,33 @@ Migration script to add the ctx_rev column to the tool_shed_repository table.
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
|
||||
col = Column("ctx_rev", TrimmedString(10))
|
||||
try:
|
||||
col.create(ToolShedRepository_table)
|
||||
assert col is ToolShedRepository_table.c.ctx_rev
|
||||
except Exception:
|
||||
log.exception("Adding ctx_rev column to the tool_shed_repository table failed.")
|
||||
add_column(col, 'tool_shed_repository', metadata)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
try:
|
||||
ToolShedRepository_table.c.ctx_rev.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping column ctx_rev from the tool_shed_repository table failed.")
|
||||
|
||||
drop_column('ctx_rev', 'tool_shed_repository', metadata)
|
||||
|
||||
@@ -5,24 +5,26 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, String, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New table in changeset TODO:TODO
|
||||
GenomeIndexToolData_table = Table("genome_index_tool_data", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("job_id", Integer, ForeignKey("job.id"), index=True),
|
||||
|
||||
@@ -5,21 +5,25 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New table to store information about cloned tool shed repositories.
|
||||
@@ -36,19 +40,15 @@ ToolDependency_table = Table("tool_dependency", metadata,
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolDependency_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating tool_dependency table failed.")
|
||||
|
||||
create_table(ToolDependency_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
ToolDependency_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping tool_dependency table failed.")
|
||||
|
||||
drop_table(ToolDependency_table)
|
||||
|
||||
+6
-10
@@ -4,24 +4,21 @@ Migration script to alter the type of the tool_dependency.version column from Tr
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import MetaData, Table
|
||||
from sqlalchemy import (
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
Table("tool_dependency", metadata, autoload=True)
|
||||
# Change the tool_dependency table's version column from TrimmedString to Text.
|
||||
if migrate_engine.name in ['postgres', 'postgresql']:
|
||||
@@ -46,6 +43,5 @@ def upgrade(migrate_engine):
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
# Not necessary to change column type Text to TrimmedString(40).
|
||||
pass
|
||||
|
||||
@@ -4,7 +4,6 @@ Migration script to drop the installed_changeset_revision column from the tool_d
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
@@ -18,13 +17,6 @@ from galaxy.model.migrate.versions.util import (
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -4,21 +4,22 @@ Migration script to add status and error_message columns to the tool_dependency
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
|
||||
@@ -1,26 +1,30 @@
|
||||
"""
|
||||
Migration script to update the deferred job parameters for liftover transfer jobs.
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, Integer, MetaData, String, Table
|
||||
from sqlalchemy.orm import mapper, scoped_session, sessionmaker
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table
|
||||
)
|
||||
from sqlalchemy.orm import (
|
||||
mapper,
|
||||
scoped_session,
|
||||
sessionmaker
|
||||
)
|
||||
|
||||
# Need our custom types, but don't import anything else from model
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.util.bunch import Bunch
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
context = scoped_session(sessionmaker(autoflush=False, autocommit=True))
|
||||
|
||||
@@ -51,6 +55,7 @@ mapper(DeferredJob, DeferredJob.table, properties={})
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
|
||||
liftoverjobs = dict()
|
||||
|
||||
@@ -5,21 +5,20 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
# New table to log cleanup events
|
||||
@@ -84,8 +83,8 @@ CleanupEventImplicitlyConvertedDatasetAssociationAssociation_table = Table("clea
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
CleanupEvent_table.create()
|
||||
|
||||
@@ -13,7 +13,6 @@ from galaxy.model.migrate.versions.util import (
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
metadata = MetaData()
|
||||
|
||||
indexes = (
|
||||
|
||||
@@ -5,19 +5,23 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
RepositoryDependency_table = Table("repository_dependency", metadata,
|
||||
@@ -38,24 +42,14 @@ def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
RepositoryDependency_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating repository_dependency table failed.")
|
||||
try:
|
||||
RepositoryRepositoryDependencyAssociation_table.create()
|
||||
except Exception:
|
||||
log.exception("Creating repository_repository_dependency_association table failed.")
|
||||
|
||||
create_table(RepositoryDependency_table)
|
||||
create_table(RepositoryRepositoryDependencyAssociation_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
RepositoryRepositoryDependencyAssociation_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping repository_repository_dependency_association table failed.")
|
||||
try:
|
||||
RepositoryDependency_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping repository_dependency table failed.")
|
||||
|
||||
drop_table(RepositoryRepositoryDependencyAssociation_table)
|
||||
drop_table(RepositoryDependency_table)
|
||||
|
||||
+12
-3
@@ -6,11 +6,18 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
DataManagerHistoryAssociation_table = Table("data_manager_history_association", metadata,
|
||||
@@ -32,6 +39,7 @@ def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
DataManagerHistoryAssociation_table.create()
|
||||
log.debug("Created data_manager_history_association table")
|
||||
@@ -47,6 +55,7 @@ def upgrade(migrate_engine):
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
DataManagerHistoryAssociation_table.drop()
|
||||
log.debug("Dropped data_manager_history_association table")
|
||||
|
||||
@@ -4,15 +4,8 @@ Migration script to update the migrate_tools.repository_path column to point to
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
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)
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
|
||||
@@ -4,15 +4,8 @@ Migration script to update the migrate_tools.repository_path column to point to
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
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)
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
|
||||
+27
-37
@@ -4,22 +4,22 @@ Migration script to drop the update_available Boolean column and replace it with
|
||||
from __future__ import print_function
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from sqlalchemy import Boolean, Column, MetaData, Table
|
||||
from sqlalchemy.exc import NoSuchTableError
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column, engine_false
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column,
|
||||
engine_false
|
||||
)
|
||||
|
||||
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()
|
||||
|
||||
|
||||
@@ -28,35 +28,25 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
ToolShedRepository_table = None
|
||||
log.debug("Failed loading table tool_shed_repository")
|
||||
if ToolShedRepository_table is not None:
|
||||
# SQLAlchemy Migrate has a bug when dropping a boolean column in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
drop_column('update_available', ToolShedRepository_table)
|
||||
c = Column("tool_shed_status", JSONType, nullable=True)
|
||||
add_column(c, ToolShedRepository_table)
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
# SQLAlchemy Migrate has a bug when dropping a boolean column in SQLite
|
||||
if migrate_engine.name != 'sqlite':
|
||||
drop_column('update_available', ToolShedRepository_table)
|
||||
c = Column("tool_shed_status", JSONType, nullable=True)
|
||||
add_column(c, ToolShedRepository_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
except NoSuchTableError:
|
||||
ToolShedRepository_table = None
|
||||
log.debug("Failed loading table tool_shed_repository")
|
||||
if ToolShedRepository_table is not None:
|
||||
# For some unknown reason it is no longer possible to drop a column in a migration script if using the sqlite database.
|
||||
if migrate_engine.name != 'sqlite':
|
||||
drop_column('tool_shed_status', ToolShedRepository_table)
|
||||
c = Column("update_available", Boolean, default=False)
|
||||
add_column(c, ToolShedRepository_table)
|
||||
try:
|
||||
migrate_engine.execute("UPDATE tool_shed_repository SET update_available=%s" % engine_false(migrate_engine))
|
||||
except Exception:
|
||||
log.exception("Updating column 'update_available' of table 'tool_shed_repository' failed.")
|
||||
ToolShedRepository_table = Table("tool_shed_repository", metadata, autoload=True)
|
||||
# For some unknown reason it is no longer possible to drop a column in a migration script if using the sqlite database.
|
||||
if migrate_engine.name != 'sqlite':
|
||||
drop_column('tool_shed_status', ToolShedRepository_table)
|
||||
c = Column("update_available", Boolean, default=False)
|
||||
add_column(c, ToolShedRepository_table)
|
||||
try:
|
||||
migrate_engine.execute("UPDATE tool_shed_repository SET update_available=%s" % engine_false(migrate_engine))
|
||||
except Exception:
|
||||
log.exception("Updating column 'update_available' of table 'tool_shed_repository' failed.")
|
||||
|
||||
@@ -5,9 +5,20 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, Numeric, Table, Unicode
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Numeric,
|
||||
Table,
|
||||
Unicode
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
|
||||
@@ -6,10 +6,25 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData, Table, TEXT, Unicode
|
||||
from sqlalchemy import (
|
||||
Boolean,
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT,
|
||||
Unicode
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column,
|
||||
drop_table
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
@@ -108,9 +123,6 @@ ImplicitlyCreatedDatasetCollectionInput_table = Table("implicitly_created_datase
|
||||
Column("input_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True),
|
||||
Column("name", Unicode(255)))
|
||||
|
||||
# TODO: Find a better name for this column...
|
||||
HiddenBeneathCollection_column = Column("hidden_beneath_collection_instance_id", Integer, ForeignKey("history_dataset_collection_association.id"), nullable=True)
|
||||
|
||||
|
||||
TABLES = [
|
||||
DatasetCollection_table,
|
||||
@@ -137,23 +149,16 @@ def upgrade(migrate_engine):
|
||||
for table in TABLES:
|
||||
create_table(table)
|
||||
|
||||
try:
|
||||
hda_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
HiddenBeneathCollection_column.create(hda_table)
|
||||
except Exception:
|
||||
log.exception("Creating HDA column failed.")
|
||||
# TODO: Find a better name for this column...
|
||||
HiddenBeneathCollection_column = Column("hidden_beneath_collection_instance_id", Integer, ForeignKey("history_dataset_collection_association.id"), nullable=True)
|
||||
add_column(HiddenBeneathCollection_column, 'history_dataset_association', metadata)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
hda_table = Table("history_dataset_association", metadata, autoload=True)
|
||||
hidden_beneath_collection_instance_id_col = hda_table.c.hidden_beneath_collection_instance_id
|
||||
hidden_beneath_collection_instance_id_col.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping HDA column failed.")
|
||||
drop_column('hidden_beneath_collection_instance_id', 'history_dataset_association', metadata)
|
||||
|
||||
for table in reversed(TABLES):
|
||||
drop_table(table)
|
||||
|
||||
@@ -5,10 +5,28 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, String, Table, TEXT, Unicode
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
TEXT,
|
||||
Unicode
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType, TrimmedString, UUIDType
|
||||
from galaxy.model.migrate.versions.util import add_column, create_table, drop_column, drop_table
|
||||
from galaxy.model.custom_types import (
|
||||
JSONType,
|
||||
TrimmedString,
|
||||
UUIDType
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
@@ -62,8 +80,8 @@ TABLES = [
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
for table in TABLES:
|
||||
|
||||
@@ -5,10 +5,23 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, Table, TEXT, Unicode
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT,
|
||||
Unicode
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import add_column, create_table, drop_column, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
@@ -22,18 +35,12 @@ JobToImplicitOutputDatasetCollectionAssociation_table = Table(
|
||||
)
|
||||
|
||||
|
||||
TABLES = [
|
||||
JobToImplicitOutputDatasetCollectionAssociation_table,
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
for table in TABLES:
|
||||
create_table(table)
|
||||
create_table(JobToImplicitOutputDatasetCollectionAssociation_table)
|
||||
|
||||
dataset_collection_table = Table("dataset_collection", metadata, autoload=True)
|
||||
# need server_default because column in non-null
|
||||
@@ -48,8 +55,7 @@ def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
for table in TABLES:
|
||||
drop_table(table)
|
||||
drop_table(JobToImplicitOutputDatasetCollectionAssociation_table)
|
||||
|
||||
dataset_collection_table = Table("dataset_collection", metadata, autoload=True)
|
||||
drop_column('populated_state', dataset_collection_table)
|
||||
|
||||
@@ -5,16 +5,26 @@ from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
from collections import OrderedDict
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, String, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import TrimmedString
|
||||
from galaxy.model.migrate.versions.util import add_column, create_table, drop_column, drop_table
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
create_table,
|
||||
drop_column,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
workflow_invocation_output_dataset_association_table = Table(
|
||||
@@ -71,16 +81,14 @@ def get_new_tables():
|
||||
# Normally we define this globally in the file, but we need to delay the
|
||||
# reading of existing tables because an existing workflow_invocation_step
|
||||
# table exists that we want to recreate.
|
||||
|
||||
tables = OrderedDict()
|
||||
tables["workflow_invocation_output_dataset_association"] = workflow_invocation_output_dataset_association_table
|
||||
tables["workflow_invocation_output_dataset_collection_association"] = workflow_invocation_output_dataset_collection_association_table
|
||||
tables["workflow_invocation_step_output_dataset_association"] = workflow_invocation_step_output_dataset_association_table
|
||||
tables["workflow_invocation_step_output_dataset_collection_association"] = workflow_invocation_step_output_dataset_collection_association_table
|
||||
tables["implicit_collection_jobs"] = implicit_collection_jobs_table
|
||||
tables["implicit_collection_jobs_job_association"] = implicit_collection_jobs_job_association_table
|
||||
|
||||
return tables
|
||||
return [
|
||||
workflow_invocation_output_dataset_association_table,
|
||||
workflow_invocation_output_dataset_collection_association_table,
|
||||
workflow_invocation_step_output_dataset_association_table,
|
||||
workflow_invocation_step_output_dataset_collection_association_table,
|
||||
implicit_collection_jobs_table,
|
||||
implicit_collection_jobs_job_association_table
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
@@ -88,8 +96,7 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
tables = get_new_tables()
|
||||
for table in tables.values():
|
||||
for table in get_new_tables():
|
||||
create_table(table)
|
||||
|
||||
# Set default for creation to scheduled, actual mapping has new as default.
|
||||
@@ -127,6 +134,5 @@ def downgrade(migrate_engine):
|
||||
drop_column("state", "workflow_invocation_step", metadata)
|
||||
drop_column("element_count", "dataset_collection", metadata)
|
||||
|
||||
tables = get_new_tables()
|
||||
for table in reversed(list(tables.values())):
|
||||
for table in reversed(get_new_tables()):
|
||||
drop_table(table)
|
||||
|
||||
+21
-14
@@ -6,13 +6,26 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import MetadataType, TrimmedString
|
||||
from galaxy.model.custom_types import (
|
||||
MetadataType,
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
HistoryDatasetAssociationHistory_table = Table(
|
||||
@@ -32,18 +45,12 @@ def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
HistoryDatasetAssociationHistory_table.create()
|
||||
log.debug("Created history_dataset_association_history table")
|
||||
except Exception:
|
||||
log.exception("Creating history_dataset_association_history table failed.")
|
||||
|
||||
create_table(HistoryDatasetAssociationHistory_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
HistoryDatasetAssociationHistory_table.drop()
|
||||
log.debug("Dropped history_dataset_association_history table")
|
||||
except Exception:
|
||||
log.exception("Dropping history_dataset_association_history table failed.")
|
||||
|
||||
drop_table(HistoryDatasetAssociationHistory_table)
|
||||
|
||||
@@ -6,12 +6,22 @@ from __future__ import print_function
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, DateTime, ForeignKey, Integer, MetaData, Table
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
|
||||
metadata = MetaData()
|
||||
|
||||
# New table to log cleanup events
|
||||
@@ -28,19 +38,11 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
CleanupEventUserAssociation_table.create()
|
||||
log.debug("Created cleanup_event_user_association table")
|
||||
except Exception:
|
||||
log.exception("Creating cleanup_event_user_association table failed.")
|
||||
create_table(CleanupEventUserAssociation_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
CleanupEventUserAssociation_table.drop()
|
||||
log.debug("Dropped cleanup_event_user_association table")
|
||||
except Exception:
|
||||
log.exception("Dropping cleanup_event_user_association table failed.")
|
||||
drop_table(CleanupEventUserAssociation_table)
|
||||
|
||||
@@ -17,7 +17,10 @@ from sqlalchemy import (
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
|
||||
@@ -5,7 +5,12 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
|
||||
@@ -5,13 +5,22 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, ForeignKey, Integer, MetaData, Table, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
Table,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import JSONType
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(logging.DEBUG)
|
||||
|
||||
metadata = MetaData()
|
||||
|
||||
dataset_source_table = Table(
|
||||
@@ -45,20 +54,14 @@ def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
dataset_source_table.create()
|
||||
dataset_hash_table.create()
|
||||
dataset_source_hash_table.create()
|
||||
except Exception:
|
||||
log.exception("Adding dataset source and hash tables failed.")
|
||||
create_table(dataset_source_table)
|
||||
create_table(dataset_hash_table)
|
||||
create_table(dataset_source_hash_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
try:
|
||||
dataset_source_hash_table.drop()
|
||||
dataset_hash_table.drop()
|
||||
dataset_source_table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping dataset source and hash tables failed.")
|
||||
drop_table(dataset_source_hash_table)
|
||||
drop_table(dataset_hash_table)
|
||||
drop_table(dataset_source_table)
|
||||
|
||||
@@ -9,8 +9,8 @@ from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, MetaData,
|
||||
from galaxy.model.custom_types import JSONType, UUIDType
|
||||
from galaxy.model.migrate.versions.util import add_column, create_table, drop_column, drop_table
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
@@ -30,18 +30,13 @@ DynamicTool_table = Table(
|
||||
Column("value", JSONType()),
|
||||
)
|
||||
|
||||
TABLES = [
|
||||
DynamicTool_table,
|
||||
]
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
for table in TABLES:
|
||||
create_table(table)
|
||||
create_table(DynamicTool_table)
|
||||
|
||||
if migrate_engine.name in ['postgres', 'postgresql']:
|
||||
workflow_dynamic_tool_id_column = Column("dynamic_tool_id", Integer, ForeignKey("dynamic_tool.id"), nullable=True)
|
||||
@@ -60,6 +55,4 @@ def downgrade(migrate_engine):
|
||||
|
||||
drop_column("dynamic_tool_id", "workflow_step", metadata)
|
||||
drop_column("dynamic_tool_id", "job", metadata)
|
||||
|
||||
for table in TABLES:
|
||||
drop_table(table)
|
||||
drop_table(DynamicTool_table)
|
||||
|
||||
@@ -15,7 +15,10 @@ from sqlalchemy import (
|
||||
UniqueConstraint,
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import create_table, drop_table
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
from galaxy.model.orm.now import now
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@@ -6,10 +6,16 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, MetaData
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData
|
||||
)
|
||||
|
||||
from galaxy.model.custom_types import UUIDType
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -5,8 +5,22 @@ from __future__ import print_function
|
||||
|
||||
import logging
|
||||
|
||||
from sqlalchemy import (Column, DateTime, ForeignKey, Integer, MetaData,
|
||||
String, Table, Text, UniqueConstraint)
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
Integer,
|
||||
MetaData,
|
||||
String,
|
||||
Table,
|
||||
Text,
|
||||
UniqueConstraint
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
create_table,
|
||||
drop_table
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
metadata = MetaData()
|
||||
@@ -32,17 +46,11 @@ def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
CustosAuthnzToken_table.create()
|
||||
except Exception:
|
||||
log.exception("Failed to create custos_authnz_token table")
|
||||
create_table(CustosAuthnzToken_table)
|
||||
|
||||
|
||||
def downgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
try:
|
||||
CustosAuthnzToken_table.drop()
|
||||
except Exception:
|
||||
log.exception("Failed to drop custos_authnz_token table")
|
||||
drop_table(CustosAuthnzToken_table)
|
||||
|
||||
@@ -4,18 +4,25 @@ Adds created_from_basename to dataset.
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, MetaData, TEXT
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
TEXT
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
created_from_basename_column = Column("created_from_basename", TEXT, default=None)
|
||||
|
||||
@@ -1,21 +1,30 @@
|
||||
"""
|
||||
Add 'galaxy_version' attribute to Job table.
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
from sqlalchemy import Column, MetaData, String
|
||||
from sqlalchemy import (
|
||||
Column,
|
||||
MetaData,
|
||||
String
|
||||
)
|
||||
|
||||
from galaxy.model.migrate.versions.util import add_column, drop_column
|
||||
from galaxy.model.migrate.versions.util import (
|
||||
add_column,
|
||||
drop_column
|
||||
)
|
||||
|
||||
now = datetime.datetime.utcnow
|
||||
log = logging.getLogger(__name__)
|
||||
now = datetime.datetime.utcnow
|
||||
metadata = MetaData()
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
metadata.bind = migrate_engine
|
||||
print(__doc__)
|
||||
metadata.bind = migrate_engine
|
||||
metadata.reflect()
|
||||
|
||||
created_from_basename_column = Column("galaxy_version", String(64), default=None)
|
||||
|
||||
@@ -51,8 +51,15 @@ def create_table(table):
|
||||
log.exception("Creating table '%s' failed.", table)
|
||||
|
||||
|
||||
def drop_table(table):
|
||||
def drop_table(table, metadata=None):
|
||||
"""
|
||||
:param table: Table to drop
|
||||
:type table: :class:`Table` or str
|
||||
"""
|
||||
try:
|
||||
if not isinstance(table, Table):
|
||||
assert metadata is not None
|
||||
table = Table(table, metadata, autoload=True)
|
||||
table.drop()
|
||||
except Exception:
|
||||
log.exception("Dropping table '%s' failed.", table)
|
||||
|
||||
Reference in New Issue
Block a user