Merge "Migrate mistral task_type"
This commit is contained in:
commit
39095ca48b
@ -26,8 +26,22 @@ revision = '020'
|
||||
down_revision = '019'
|
||||
|
||||
from alembic import op
|
||||
from mistral.db.sqlalchemy import types as st
|
||||
import sqlalchemy as sa
|
||||
|
||||
# A simple model of the task executions table with only the fields needed for
|
||||
# the migration.
|
||||
task_executions = sa.Table(
|
||||
'task_executions_v2',
|
||||
sa.MetaData(),
|
||||
sa.Column('id', sa.String(36), nullable=False),
|
||||
sa.Column(
|
||||
'spec',
|
||||
st.JsonMediumDictType()
|
||||
),
|
||||
sa.Column('type', sa.String(10), nullable=True)
|
||||
)
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@ -35,3 +49,25 @@ def upgrade():
|
||||
'task_executions_v2',
|
||||
sa.Column('type', sa.String(length=10), nullable=True)
|
||||
)
|
||||
|
||||
session = sa.orm.Session(bind=op.get_bind())
|
||||
values = []
|
||||
|
||||
for row in session.query(task_executions):
|
||||
values.append({'id': row[0],
|
||||
'spec': row[1]})
|
||||
|
||||
with session.begin(subtransactions=True):
|
||||
for value in values:
|
||||
task_type = "ACTION"
|
||||
if "workflow" in value['spec']:
|
||||
task_type = "WORKFLOW"
|
||||
|
||||
session.execute(
|
||||
task_executions.update().values(type=task_type).where(
|
||||
task_executions.c.id == value['id']
|
||||
)
|
||||
)
|
||||
|
||||
# this commit appears to be necessary
|
||||
session.commit()
|
||||
|
Loading…
Reference in New Issue
Block a user