mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Fix for running workflows with steps that don't have jobs
This commit is contained in:
@@ -571,7 +571,7 @@ WorkflowInvocationStep.table = Table( "workflow_invocation_step", metadata,
|
||||
Column( "update_time", DateTime, default=now, onupdate=now ),
|
||||
Column( "workflow_invocation_id", Integer, ForeignKey( "workflow_invocation.id" ), index=True, nullable=False ),
|
||||
Column( "workflow_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True, nullable=False ),
|
||||
Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=False )
|
||||
Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=True )
|
||||
)
|
||||
|
||||
StoredWorkflowUserShareAssociation.table = Table( "stored_workflow_user_share_connection", metadata,
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
Drop and readd workflow invocation tables, allowing null jobs
|
||||
"""
|
||||
|
||||
from sqlalchemy import *
|
||||
from sqlalchemy.orm import *
|
||||
from migrate import *
|
||||
from migrate.changeset import *
|
||||
|
||||
import logging
|
||||
logging.basicConfig( level=logging.DEBUG )
|
||||
log = logging.getLogger( __name__ )
|
||||
|
||||
import datetime
|
||||
now = datetime.datetime.utcnow
|
||||
|
||||
def upgrade():
|
||||
print __doc__
|
||||
|
||||
metadata = MetaData( migrate_engine )
|
||||
db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
|
||||
metadata.reflect()
|
||||
|
||||
# 1) Drop
|
||||
|
||||
for table_name in [ "workflow_invocation_step", "workflow_invocation" ]:
|
||||
try:
|
||||
t = Table( table_name, metadata, autoload=True ).drop()
|
||||
except:
|
||||
log.exception( "Failed to drop table '%s', ignoring (might result in wrong schema)" % table_name )
|
||||
|
||||
# 2) Readd
|
||||
|
||||
metadata = MetaData( migrate_engine )
|
||||
db_session = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
|
||||
metadata.reflect()
|
||||
|
||||
WorkflowInvocation_table = Table( "workflow_invocation", metadata,
|
||||
Column( "id", Integer, primary_key=True ),
|
||||
Column( "create_time", DateTime, default=now ),
|
||||
Column( "update_time", DateTime, default=now, onupdate=now ),
|
||||
Column( "workflow_id", Integer, ForeignKey( "workflow.id" ), index=True, nullable=False ),
|
||||
)
|
||||
|
||||
WorkflowInvocationStep_table = Table( "workflow_invocation_step", metadata,
|
||||
Column( "id", Integer, primary_key=True ),
|
||||
Column( "create_time", DateTime, default=now ),
|
||||
Column( "update_time", DateTime, default=now, onupdate=now ),
|
||||
Column( "workflow_invocation_id", Integer, ForeignKey( "workflow_invocation.id" ), index=True, nullable=False ),
|
||||
Column( "workflow_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True, nullable=False ),
|
||||
Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=True ),
|
||||
)
|
||||
|
||||
for table in [ WorkflowInvocation_table, WorkflowInvocationStep_table ]:
|
||||
try:
|
||||
table.create()
|
||||
except:
|
||||
log.exception( "Failed to create table '%s', ignoring (might result in wrong schema)" % table.name )
|
||||
|
||||
def downgrade():
|
||||
# No downgrade
|
||||
pass
|
||||
Reference in New Issue
Block a user