Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.model.migrate.versions.0107_add_exit_code_to_job_and_task
"""
Add the exit_code column to the Job and Task tables.
"""
from __future__ import print_function
import logging
from sqlalchemy import Column, Integer, MetaData, Table
log = logging.getLogger(__name__)
metadata = MetaData()
# There was a bug when only one column was used for both tables,
# so create separate columns.
exit_code_job_col = Column("exit_code", Integer, nullable=True)
exit_code_task_col = Column("exit_code", Integer, nullable=True)
[docs]def upgrade(migrate_engine):
print(__doc__)
metadata.bind = migrate_engine
metadata.reflect()
# Add the exit_code column to the Job table.
try:
job_table = Table("job", metadata, autoload=True)
exit_code_job_col.create(job_table)
assert exit_code_job_col is job_table.c.exit_code
except Exception:
log.exception("Adding column 'exit_code' to job table failed.")
# Add the exit_code column to the Task table.
try:
task_table = Table("task", metadata, autoload=True)
exit_code_task_col.create(task_table)
assert exit_code_task_col is task_table.c.exit_code
except Exception:
log.exception("Adding column 'exit_code' to task table failed.")
[docs]def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
# Drop the Job table's exit_code column.
try:
job_table = Table("job", metadata, autoload=True)
exit_code_col = job_table.c.exit_code
exit_code_col.drop()
except Exception:
log.exception("Dropping 'exit_code' column from job table failed.")
# Drop the Job table's exit_code column.
try:
task_table = Table("task", metadata, autoload=True)
exit_code_col = task_table.c.exit_code
exit_code_col.drop()
except Exception:
log.exception("Dropping 'exit_code' column from task table failed.")