spiff-arena/spiffworkflow-backend/migrations/versions/3191627ae224_.py

71 lines
2.7 KiB
Python

"""empty message
Revision ID: 3191627ae224
Revises: 441dca328887
Create Date: 2023-12-18 17:08:53.142318
"""
# import os
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
from spiffworkflow_backend.models.db import db, dialect_name
# revision identifiers, used by Alembic.
revision = '3191627ae224'
down_revision = '441dca328887'
branch_labels = None
depends_on = None
def is_mysql() -> bool:
return dialect_name() == 'mysql'
def is_postgres() -> bool:
return dialect_name() == 'postgres'
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
# we did in fact heavily adjust this one. be careful if auto-generating.
with op.batch_alter_table('task', schema=None) as batch_op:
if is_mysql():
batch_op.drop_index('guid')
batch_op.create_index(batch_op.f('ix_task_guid'), ['guid'], unique=False)
with op.batch_alter_table('human_task', schema=None) as batch_op:
batch_op.add_column(sa.Column('task_guid', sa.String(length=36), nullable=True))
# sqlite does not seem to have this foreignkey constraint
if is_postgres():
batch_op.drop_constraint('human_task_task_model_id_fkey', type_='foreignkey')
elif is_mysql():
batch_op.drop_constraint('human_task_ibfk_5', type_='foreignkey')
batch_op.drop_index('ix_human_task_task_model_id')
batch_op.create_index(batch_op.f('ix_human_task_task_guid'), ['task_guid'], unique=False)
batch_op.create_foreign_key('human_task_ibfk_task_guid', 'task', ['task_guid'], ['guid'])
batch_op.drop_column('task_model_id')
with op.batch_alter_table('task', schema=None) as batch_op:
batch_op.drop_column('id')
batch_op.create_primary_key('guid_pk', ['guid'])
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('task', schema=None) as batch_op:
batch_op.add_column(sa.Column('id', mysql.INTEGER(), autoincrement=True, nullable=False))
batch_op.drop_index(batch_op.f('ix_task_guid'))
batch_op.create_index('guid', ['guid'], unique=False)
with op.batch_alter_table('human_task', schema=None) as batch_op:
batch_op.add_column(sa.Column('task_model_id', mysql.INTEGER(), autoincrement=False, nullable=True))
batch_op.drop_constraint(None, type_='foreignkey')
batch_op.create_foreign_key('human_task_ibfk_5', 'task', ['task_model_id'], ['id'])
batch_op.drop_index(batch_op.f('ix_human_task_task_guid'))
batch_op.create_index('ix_human_task_task_model_id', ['task_model_id'], unique=False)
batch_op.drop_column('task_guid')
# ### end Alembic commands ###