From 276e6d5f37cc1f9d06ff7d2693738e8f6d1d840f Mon Sep 17 00:00:00 2001 From: jasquat Date: Fri, 3 Mar 2023 11:41:34 -0500 Subject: [PATCH] recreate migrations to set case sensitive columns for mysql w/ burnettk --- .../migrations/versions/04e43b3c9a50_.py | 36 ------ .../migrations/versions/2fe2830f45e1_.py | 44 -------- .../migrations/versions/317dd5155137_.py | 85 -------------- .../{ac6b60d7fee9_.py => 3ad01a365c17_.py} | 106 +++++++++++++++++- .../migrations/versions/567d22ded3af_.py | 28 ----- .../migrations/versions/6315ff2525b0_.py | 30 ----- .../migrations/versions/7422be14adc4_.py | 51 --------- .../migrations/versions/8930711a75a4_.py | 28 ----- .../migrations/versions/def2cbb0ca6b_.py | 32 ------ .../models/bpmn_process_definition.py | 4 +- .../bpmn_process_definition_relationship.py | 8 +- .../src/spiffworkflow_backend/models/task.py | 4 +- .../models/task_definition.py | 5 +- .../services/process_instance_processor.py | 22 ++-- 14 files changed, 128 insertions(+), 355 deletions(-) delete mode 100644 spiffworkflow-backend/migrations/versions/04e43b3c9a50_.py delete mode 100644 spiffworkflow-backend/migrations/versions/2fe2830f45e1_.py delete mode 100644 spiffworkflow-backend/migrations/versions/317dd5155137_.py rename spiffworkflow-backend/migrations/versions/{ac6b60d7fee9_.py => 3ad01a365c17_.py} (73%) delete mode 100644 spiffworkflow-backend/migrations/versions/567d22ded3af_.py delete mode 100644 spiffworkflow-backend/migrations/versions/6315ff2525b0_.py delete mode 100644 spiffworkflow-backend/migrations/versions/7422be14adc4_.py delete mode 100644 spiffworkflow-backend/migrations/versions/8930711a75a4_.py delete mode 100644 spiffworkflow-backend/migrations/versions/def2cbb0ca6b_.py diff --git a/spiffworkflow-backend/migrations/versions/04e43b3c9a50_.py b/spiffworkflow-backend/migrations/versions/04e43b3c9a50_.py deleted file mode 100644 index 072f4ba8..00000000 --- a/spiffworkflow-backend/migrations/versions/04e43b3c9a50_.py +++ /dev/null @@ -1,36 +0,0 @@ -"""empty message - -Revision ID: 04e43b3c9a50 -Revises: def2cbb0ca6b -Create Date: 2023-03-03 10:31:53.578474 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = '04e43b3c9a50' -down_revision = 'def2cbb0ca6b' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('bpmn_process_definition', 'type', - existing_type=mysql.VARCHAR(length=32), - nullable=True) - op.drop_index('ix_bpmn_process_definition_type', table_name='bpmn_process_definition') - op.add_column('process_instance', sa.Column('spiff_serializer_version', sa.String(length=50), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('process_instance', 'spiff_serializer_version') - op.create_index('ix_bpmn_process_definition_type', 'bpmn_process_definition', ['type'], unique=False) - op.alter_column('bpmn_process_definition', 'type', - existing_type=mysql.VARCHAR(length=32), - nullable=False) - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/2fe2830f45e1_.py b/spiffworkflow-backend/migrations/versions/2fe2830f45e1_.py deleted file mode 100644 index 57072697..00000000 --- a/spiffworkflow-backend/migrations/versions/2fe2830f45e1_.py +++ /dev/null @@ -1,44 +0,0 @@ -"""empty message - -Revision ID: 2fe2830f45e1 -Revises: 317dd5155137 -Create Date: 2023-03-02 17:19:08.535027 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '2fe2830f45e1' -down_revision = '317dd5155137' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('json_data', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('hash', sa.String(length=255), nullable=False), - sa.Column('data', sa.JSON(), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_json_data_hash'), 'json_data', ['hash'], unique=True) - op.create_table('bpmn_process_definition_relationship', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('bpmn_process_definition_parent_id', sa.Integer(), nullable=False), - sa.Column('bpmn_process_definition_child_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['bpmn_process_definition_child_id'], ['bpmn_process_definition.id'], ), - sa.ForeignKeyConstraint(['bpmn_process_definition_parent_id'], ['bpmn_process_definition.id'], ), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('bpmn_process_definition_relationship') - op.drop_index(op.f('ix_json_data_hash'), table_name='json_data') - op.drop_table('json_data') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/317dd5155137_.py b/spiffworkflow-backend/migrations/versions/317dd5155137_.py deleted file mode 100644 index e64254c7..00000000 --- a/spiffworkflow-backend/migrations/versions/317dd5155137_.py +++ /dev/null @@ -1,85 +0,0 @@ -"""empty message - -Revision ID: 317dd5155137 -Revises: 8930711a75a4 -Create Date: 2023-03-02 17:16:15.687837 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '317dd5155137' -down_revision = '8930711a75a4' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('bpmn_process', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('parent_process_id', sa.Integer(), nullable=True), - sa.Column('properties_json', sa.JSON(), nullable=False), - sa.Column('json_data_hash', sa.String(length=255), nullable=False), - sa.Column('process_type', sa.String(length=30), nullable=False), - sa.ForeignKeyConstraint(['parent_process_id'], ['bpmn_process.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_bpmn_process_json_data_hash'), 'bpmn_process', ['json_data_hash'], unique=False) - op.create_table('bpmn_process_definition', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('hash', sa.String(length=255), nullable=False), - sa.Column('bpmn_identifier', sa.String(length=255), nullable=False), - sa.Column('properties_json', sa.JSON(), nullable=False), - sa.Column('type', sa.String(length=32), nullable=False), - sa.Column('bpmn_version_control_type', sa.String(length=50), nullable=True), - sa.Column('bpmn_version_control_identifier', sa.String(length=255), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_bpmn_process_definition_bpmn_identifier'), 'bpmn_process_definition', ['bpmn_identifier'], unique=False) - op.create_index(op.f('ix_bpmn_process_definition_hash'), 'bpmn_process_definition', ['hash'], unique=True) - op.create_index(op.f('ix_bpmn_process_definition_type'), 'bpmn_process_definition', ['type'], unique=False) - op.create_table('task_definition', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('bpmn_process_definition_id', sa.Integer(), nullable=False), - sa.Column('bpmn_identifier', sa.String(length=255), nullable=False), - sa.Column('properties_json', sa.JSON(), nullable=False), - sa.Column('typename', sa.String(length=255), nullable=False), - sa.ForeignKeyConstraint(['bpmn_process_definition_id'], ['bpmn_process_definition.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('bpmn_process_definition_id', 'bpmn_identifier', name='task_definition_unique') - ) - op.create_index(op.f('ix_task_definition_bpmn_identifier'), 'task_definition', ['bpmn_identifier'], unique=False) - op.create_table('task', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('guid', sa.String(length=36), nullable=False), - sa.Column('bpmn_process_id', sa.Integer(), nullable=False), - sa.Column('task_definition_id', sa.Integer(), nullable=False), - sa.Column('state', sa.String(length=10), nullable=False), - sa.Column('properties_json', sa.JSON(), nullable=False), - sa.Column('json_data_hash', sa.String(length=255), nullable=False), - sa.ForeignKeyConstraint(['bpmn_process_id'], ['bpmn_process.id'], ), - sa.ForeignKeyConstraint(['task_definition_id'], ['task_definition.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_task_guid'), 'task', ['guid'], unique=True) - op.create_index(op.f('ix_task_json_data_hash'), 'task', ['json_data_hash'], unique=False) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_index(op.f('ix_task_json_data_hash'), table_name='task') - op.drop_index(op.f('ix_task_guid'), table_name='task') - op.drop_table('task') - op.drop_index(op.f('ix_task_definition_bpmn_identifier'), table_name='task_definition') - op.drop_table('task_definition') - op.drop_index(op.f('ix_bpmn_process_definition_type'), table_name='bpmn_process_definition') - op.drop_index(op.f('ix_bpmn_process_definition_hash'), table_name='bpmn_process_definition') - op.drop_index(op.f('ix_bpmn_process_definition_bpmn_identifier'), table_name='bpmn_process_definition') - op.drop_table('bpmn_process_definition') - op.drop_index(op.f('ix_bpmn_process_json_data_hash'), table_name='bpmn_process') - op.drop_table('bpmn_process') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/ac6b60d7fee9_.py b/spiffworkflow-backend/migrations/versions/3ad01a365c17_.py similarity index 73% rename from spiffworkflow-backend/migrations/versions/ac6b60d7fee9_.py rename to spiffworkflow-backend/migrations/versions/3ad01a365c17_.py index 520af380..1378ae02 100644 --- a/spiffworkflow-backend/migrations/versions/ac6b60d7fee9_.py +++ b/spiffworkflow-backend/migrations/versions/3ad01a365c17_.py @@ -1,8 +1,8 @@ """empty message -Revision ID: ac6b60d7fee9 +Revision ID: 3ad01a365c17 Revises: -Create Date: 2023-02-27 22:02:11.465980 +Create Date: 2023-03-03 11:36:56.060834 """ from alembic import op @@ -10,7 +10,7 @@ import sqlalchemy as sa # revision identifiers, used by Alembic. -revision = 'ac6b60d7fee9' +revision = '3ad01a365c17' down_revision = None branch_labels = None depends_on = None @@ -18,6 +18,28 @@ depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### + op.create_table('bpmn_process', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('parent_process_id', sa.Integer(), nullable=True), + sa.Column('properties_json', sa.JSON(), nullable=False), + sa.Column('json_data_hash', sa.String(length=255), nullable=False), + sa.Column('process_type', sa.String(length=30), nullable=False), + sa.ForeignKeyConstraint(['parent_process_id'], ['bpmn_process.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_bpmn_process_json_data_hash'), 'bpmn_process', ['json_data_hash'], unique=False) + op.create_table('bpmn_process_definition', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('hash', sa.String(length=255), nullable=False), + sa.Column('bpmn_identifier', sa.String(length=255, collation='utf8mb4_0900_as_cs'), nullable=False), + sa.Column('properties_json', sa.JSON(), nullable=False), + sa.Column('type', sa.String(length=32), nullable=True), + sa.Column('bpmn_version_control_type', sa.String(length=50), nullable=True), + sa.Column('bpmn_version_control_identifier', sa.String(length=255), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_bpmn_process_definition_bpmn_identifier'), 'bpmn_process_definition', ['bpmn_identifier'], unique=False) + op.create_index(op.f('ix_bpmn_process_definition_hash'), 'bpmn_process_definition', ['hash'], unique=True) op.create_table('correlation_property_cache', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=50), nullable=False), @@ -32,6 +54,13 @@ def upgrade(): sa.Column('identifier', sa.String(length=255), nullable=True), sa.PrimaryKeyConstraint('id') ) + op.create_table('json_data', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('hash', sa.String(length=255), nullable=False), + sa.Column('data', sa.JSON(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_json_data_hash'), 'json_data', ['hash'], unique=True) op.create_table('message_triggerable_process_model', sa.Column('id', sa.Integer(), nullable=False), sa.Column('message_name', sa.String(length=255), nullable=True), @@ -47,6 +76,18 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('uri') ) + op.create_table('process_instance_data', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('runtime_json', sa.JSON(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('serialized_bpmn_definition', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('hash', sa.String(length=255), nullable=False), + sa.Column('static_json', sa.JSON(), nullable=False), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_serialized_bpmn_definition_hash'), 'serialized_bpmn_definition', ['hash'], unique=True) op.create_table('spec_reference_cache', sa.Column('id', sa.Integer(), nullable=False), sa.Column('identifier', sa.String(length=255), nullable=True), @@ -68,6 +109,7 @@ def upgrade(): sa.Column('id', sa.Integer(), nullable=False), sa.Column('process_instance_id', sa.Integer(), nullable=False), sa.Column('bpmn_process_identifier', sa.String(length=255), nullable=False), + sa.Column('bpmn_process_name', sa.String(length=255), nullable=True), sa.Column('bpmn_task_identifier', sa.String(length=255), nullable=False), sa.Column('bpmn_task_name', sa.String(length=255), nullable=True), sa.Column('bpmn_task_type', sa.String(length=255), nullable=True), @@ -94,6 +136,15 @@ def upgrade(): sa.UniqueConstraint('service', 'service_id', name='service_key'), sa.UniqueConstraint('username') ) + op.create_table('bpmn_process_definition_relationship', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('bpmn_process_definition_parent_id', sa.Integer(), nullable=False), + sa.Column('bpmn_process_definition_child_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['bpmn_process_definition_child_id'], ['bpmn_process_definition.id'], ), + sa.ForeignKeyConstraint(['bpmn_process_definition_parent_id'], ['bpmn_process_definition.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('bpmn_process_definition_parent_id', 'bpmn_process_definition_child_id', name='bpmn_process_definition_relationship_unique') + ) op.create_table('principal', sa.Column('id', sa.Integer(), nullable=False), sa.Column('user_id', sa.Integer(), nullable=True), @@ -110,6 +161,10 @@ def upgrade(): sa.Column('process_model_identifier', sa.String(length=255), nullable=False), sa.Column('process_model_display_name', sa.String(length=255), nullable=False), sa.Column('process_initiator_id', sa.Integer(), nullable=False), + sa.Column('serialized_bpmn_definition_id', sa.Integer(), nullable=True), + sa.Column('process_instance_data_id', sa.Integer(), nullable=True), + sa.Column('bpmn_process_definition_id', sa.Integer(), nullable=True), + sa.Column('spiff_serializer_version', sa.String(length=50), nullable=True), sa.Column('bpmn_json', sa.JSON(), nullable=True), sa.Column('start_in_seconds', sa.Integer(), nullable=True), sa.Column('end_in_seconds', sa.Integer(), nullable=True), @@ -121,7 +176,10 @@ def upgrade(): sa.Column('spiff_step', sa.Integer(), nullable=True), sa.Column('locked_by', sa.String(length=80), nullable=True), sa.Column('locked_at_in_seconds', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['bpmn_process_definition_id'], ['bpmn_process_definition.id'], ), sa.ForeignKeyConstraint(['process_initiator_id'], ['user.id'], ), + sa.ForeignKeyConstraint(['process_instance_data_id'], ['process_instance_data.id'], ), + sa.ForeignKeyConstraint(['serialized_bpmn_definition_id'], ['serialized_bpmn_definition.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_process_instance_process_model_display_name'), 'process_instance', ['process_model_display_name'], unique=False) @@ -158,6 +216,17 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('key') ) + op.create_table('task_definition', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('bpmn_process_definition_id', sa.Integer(), nullable=False), + sa.Column('bpmn_identifier', sa.String(length=255, collation='utf8mb4_0900_as_cs'), nullable=False), + sa.Column('properties_json', sa.JSON(), nullable=False), + sa.Column('typename', sa.String(length=255), nullable=False), + sa.ForeignKeyConstraint(['bpmn_process_definition_id'], ['bpmn_process_definition.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('bpmn_process_definition_id', 'bpmn_identifier', name='task_definition_unique') + ) + op.create_index(op.f('ix_task_definition_bpmn_identifier'), 'task_definition', ['bpmn_identifier'], unique=False) op.create_table('user_group_assignment', sa.Column('id', sa.Integer(), nullable=False), sa.Column('user_id', sa.Integer(), nullable=False), @@ -248,12 +317,27 @@ def upgrade(): sa.Column('task_id', sa.String(length=50), nullable=False), sa.Column('task_state', sa.String(length=50), nullable=False), sa.Column('bpmn_task_identifier', sa.String(length=255), nullable=False), + sa.Column('delta_json', sa.JSON(), nullable=True), sa.Column('start_in_seconds', sa.DECIMAL(precision=17, scale=6), nullable=False), sa.Column('end_in_seconds', sa.DECIMAL(precision=17, scale=6), nullable=True), sa.ForeignKeyConstraint(['process_instance_id'], ['process_instance.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('process_instance_id', 'spiff_step', name='process_instance_id_spiff_step') ) + op.create_table('task', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('guid', sa.String(length=36), nullable=False), + sa.Column('bpmn_process_id', sa.Integer(), nullable=False), + sa.Column('task_definition_id', sa.Integer(), nullable=False), + sa.Column('state', sa.String(length=10), nullable=False), + sa.Column('properties_json', sa.JSON(), nullable=False), + sa.Column('json_data_hash', sa.String(length=255), nullable=False), + sa.ForeignKeyConstraint(['bpmn_process_id'], ['bpmn_process.id'], ), + sa.ForeignKeyConstraint(['task_definition_id'], ['task_definition.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_index(op.f('ix_task_guid'), 'task', ['guid'], unique=True) + op.create_index(op.f('ix_task_json_data_hash'), 'task', ['json_data_hash'], unique=False) op.create_table('human_task_user', sa.Column('id', sa.Integer(), nullable=False), sa.Column('human_task_id', sa.Integer(), nullable=False), @@ -287,6 +371,9 @@ def downgrade(): op.drop_index(op.f('ix_human_task_user_user_id'), table_name='human_task_user') op.drop_index(op.f('ix_human_task_user_human_task_id'), table_name='human_task_user') op.drop_table('human_task_user') + op.drop_index(op.f('ix_task_json_data_hash'), table_name='task') + op.drop_index(op.f('ix_task_guid'), table_name='task') + op.drop_table('task') op.drop_table('spiff_step_details') op.drop_index(op.f('ix_process_instance_metadata_key'), table_name='process_instance_metadata') op.drop_table('process_instance_metadata') @@ -296,6 +383,8 @@ def downgrade(): op.drop_table('human_task') op.drop_table('user_group_assignment_waiting') op.drop_table('user_group_assignment') + op.drop_index(op.f('ix_task_definition_bpmn_identifier'), table_name='task_definition') + op.drop_table('task_definition') op.drop_table('secret') op.drop_table('refresh_token') op.drop_index(op.f('ix_process_instance_report_identifier'), table_name='process_instance_report') @@ -305,15 +394,26 @@ def downgrade(): op.drop_index(op.f('ix_process_instance_process_model_display_name'), table_name='process_instance') op.drop_table('process_instance') op.drop_table('principal') + op.drop_table('bpmn_process_definition_relationship') op.drop_table('user') op.drop_table('spiff_logging') op.drop_index(op.f('ix_spec_reference_cache_type'), table_name='spec_reference_cache') op.drop_index(op.f('ix_spec_reference_cache_identifier'), table_name='spec_reference_cache') op.drop_index(op.f('ix_spec_reference_cache_display_name'), table_name='spec_reference_cache') op.drop_table('spec_reference_cache') + op.drop_index(op.f('ix_serialized_bpmn_definition_hash'), table_name='serialized_bpmn_definition') + op.drop_table('serialized_bpmn_definition') + op.drop_table('process_instance_data') op.drop_table('permission_target') op.drop_index(op.f('ix_message_triggerable_process_model_process_model_identifier'), table_name='message_triggerable_process_model') op.drop_table('message_triggerable_process_model') + op.drop_index(op.f('ix_json_data_hash'), table_name='json_data') + op.drop_table('json_data') op.drop_table('group') op.drop_table('correlation_property_cache') + op.drop_index(op.f('ix_bpmn_process_definition_hash'), table_name='bpmn_process_definition') + op.drop_index(op.f('ix_bpmn_process_definition_bpmn_identifier'), table_name='bpmn_process_definition') + op.drop_table('bpmn_process_definition') + op.drop_index(op.f('ix_bpmn_process_json_data_hash'), table_name='bpmn_process') + op.drop_table('bpmn_process') # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/567d22ded3af_.py b/spiffworkflow-backend/migrations/versions/567d22ded3af_.py deleted file mode 100644 index 1e41244d..00000000 --- a/spiffworkflow-backend/migrations/versions/567d22ded3af_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: 567d22ded3af -Revises: 2fe2830f45e1 -Create Date: 2023-03-03 08:38:25.855923 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '567d22ded3af' -down_revision = '2fe2830f45e1' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_unique_constraint('bpmn_process_definition_relationship_unique', 'bpmn_process_definition_relationship', ['bpmn_process_definition_parent_id', 'bpmn_process_definition_child_id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint('bpmn_process_definition_relationship_unique', 'bpmn_process_definition_relationship', type_='unique') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/6315ff2525b0_.py b/spiffworkflow-backend/migrations/versions/6315ff2525b0_.py deleted file mode 100644 index d21097a2..00000000 --- a/spiffworkflow-backend/migrations/versions/6315ff2525b0_.py +++ /dev/null @@ -1,30 +0,0 @@ -"""empty message - -Revision ID: 6315ff2525b0 -Revises: 567d22ded3af -Create Date: 2023-03-03 09:19:28.098057 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '6315ff2525b0' -down_revision = '567d22ded3af' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('process_instance', sa.Column('bpmn_process_definition_id', sa.Integer(), nullable=False)) - op.create_foreign_key(None, 'process_instance', 'bpmn_process_definition', ['bpmn_process_definition_id'], ['id']) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'process_instance', type_='foreignkey') - op.drop_column('process_instance', 'bpmn_process_definition_id') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/7422be14adc4_.py b/spiffworkflow-backend/migrations/versions/7422be14adc4_.py deleted file mode 100644 index 6897e0f2..00000000 --- a/spiffworkflow-backend/migrations/versions/7422be14adc4_.py +++ /dev/null @@ -1,51 +0,0 @@ -"""empty message - -Revision ID: 7422be14adc4 -Revises: ac6b60d7fee9 -Create Date: 2023-03-01 15:39:25.731722 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '7422be14adc4' -down_revision = 'ac6b60d7fee9' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('process_instance_data', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('runtime_json', sa.JSON(), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('serialized_bpmn_definition', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('hash', sa.String(length=255), nullable=False), - sa.Column('static_json', sa.JSON(), nullable=False), - sa.PrimaryKeyConstraint('id') - ) - op.create_index(op.f('ix_serialized_bpmn_definition_hash'), 'serialized_bpmn_definition', ['hash'], unique=True) - op.add_column('process_instance', sa.Column('serialized_bpmn_definition_id', sa.Integer(), nullable=True)) - op.add_column('process_instance', sa.Column('process_instance_data_id', sa.Integer(), nullable=True)) - op.create_foreign_key(None, 'process_instance', 'process_instance_data', ['process_instance_data_id'], ['id']) - op.create_foreign_key(None, 'process_instance', 'serialized_bpmn_definition', ['serialized_bpmn_definition_id'], ['id']) - op.add_column('spiff_step_details', sa.Column('delta_json', sa.JSON(), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('spiff_step_details', 'delta_json') - op.drop_constraint('process_instance_ibfk_3', 'process_instance', type_='foreignkey') - op.drop_constraint('process_instance_ibfk_2', 'process_instance', type_='foreignkey') - op.drop_column('process_instance', 'process_instance_data_id') - op.drop_column('process_instance', 'serialized_bpmn_definition_id') - op.drop_index(op.f('ix_serialized_bpmn_definition_hash'), table_name='serialized_bpmn_definition') - op.drop_table('serialized_bpmn_definition') - op.drop_table('process_instance_data') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/8930711a75a4_.py b/spiffworkflow-backend/migrations/versions/8930711a75a4_.py deleted file mode 100644 index 9947a664..00000000 --- a/spiffworkflow-backend/migrations/versions/8930711a75a4_.py +++ /dev/null @@ -1,28 +0,0 @@ -"""empty message - -Revision ID: 8930711a75a4 -Revises: 7422be14adc4 -Create Date: 2023-03-01 16:16:50.446929 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '8930711a75a4' -down_revision = '7422be14adc4' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('spiff_logging', sa.Column('bpmn_process_name', sa.String(length=255), nullable=True)) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_column('spiff_logging', 'bpmn_process_name') - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/migrations/versions/def2cbb0ca6b_.py b/spiffworkflow-backend/migrations/versions/def2cbb0ca6b_.py deleted file mode 100644 index 33bb2694..00000000 --- a/spiffworkflow-backend/migrations/versions/def2cbb0ca6b_.py +++ /dev/null @@ -1,32 +0,0 @@ -"""empty message - -Revision ID: def2cbb0ca6b -Revises: 6315ff2525b0 -Create Date: 2023-03-03 09:23:19.480250 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import mysql - -# revision identifiers, used by Alembic. -revision = 'def2cbb0ca6b' -down_revision = '6315ff2525b0' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('process_instance', 'bpmn_process_definition_id', - existing_type=mysql.INTEGER(), - nullable=True) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('process_instance', 'bpmn_process_definition_id', - existing_type=mysql.INTEGER(), - nullable=False) - # ### end Alembic commands ### diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition.py index c78fe4f9..916cf7d7 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition.py @@ -16,7 +16,9 @@ class BpmnProcessDefinitionModel(SpiffworkflowBaseDBModel): # this is a sha256 hash of spec and serializer_version hash: str = db.Column(db.String(255), nullable=False, index=True, unique=True) - bpmn_identifier: str = db.Column(db.String(255), nullable=False, index=True) + bpmn_identifier: str = db.Column( + db.String(255, collation="utf8mb4_0900_as_cs"), nullable=False, index=True + ) properties_json: str = db.Column(db.JSON, nullable=False) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition_relationship.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition_relationship.py index 8f6fdca2..5ab4a7a2 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition_relationship.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/bpmn_process_definition_relationship.py @@ -22,8 +22,8 @@ class BpmnProcessDefinitionRelationshipModel(SpiffworkflowBaseDBModel): id: int = db.Column(db.Integer, primary_key=True) bpmn_process_definition_parent_id: int = db.Column( - ForeignKey(BpmnProcessDefinitionModel.id), nullable=False - ) # type: ignore + ForeignKey(BpmnProcessDefinitionModel.id), nullable=False # type: ignore + ) bpmn_process_definition_child_id: int = db.Column( - ForeignKey(BpmnProcessDefinitionModel.id), nullable=False - ) # type: ignore + ForeignKey(BpmnProcessDefinitionModel.id), nullable=False # type: ignore + ) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/task.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/task.py index 3fda6677..8038a14b 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/task.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/task.py @@ -8,13 +8,13 @@ from typing import Union import marshmallow from marshmallow import Schema from marshmallow_enum import EnumField # type: ignore -from SpiffWorkflow.task import TaskStateNames +from SpiffWorkflow.task import TaskStateNames # type: ignore from sqlalchemy import ForeignKey from spiffworkflow_backend.models.bpmn_process import BpmnProcessModel from spiffworkflow_backend.models.db import db from spiffworkflow_backend.models.db import SpiffworkflowBaseDBModel -from spiffworkflow_backend.models.task_definition import TaskDefinitionModel # type: ignore +from spiffworkflow_backend.models.task_definition import TaskDefinitionModel class MultiInstanceType(enum.Enum): diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/task_definition.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/task_definition.py index dab5ae57..8c70bbd0 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/task_definition.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/task_definition.py @@ -27,7 +27,8 @@ class TaskDefinitionModel(SpiffworkflowBaseDBModel): ) bpmn_process_definition = relationship(BpmnProcessDefinitionModel) - # bpmn_identifier: str = db.Column(db.String(255, collation='utf8mb4_0900_ai_cs'), nullable=False, index=True) - bpmn_identifier: str = db.Column(db.String(255), nullable=False, index=True) + bpmn_identifier: str = db.Column( + db.String(255, collation="utf8mb4_0900_as_cs"), nullable=False, index=True + ) properties_json: dict = db.Column(db.JSON, nullable=False) typename: str = db.Column(db.String(255), nullable=False) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py index 63e70d55..7ec18165 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py @@ -1,5 +1,5 @@ """Process_instance_processor.""" -import _strptime +import _strptime # type: ignore import decimal import json import logging @@ -55,7 +55,6 @@ from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore from sqlalchemy import text from spiffworkflow_backend.exceptions.api_error import ApiError -from spiffworkflow_backend.models import serialized_bpmn_definition # type: ignore from spiffworkflow_backend.models.bpmn_process_definition import ( BpmnProcessDefinitionModel, ) @@ -529,7 +528,9 @@ class ProcessInstanceProcessor: ) @classmethod - def _get_definition_dict_for_bpmn_process_definition(cls, bpmn_process_definition: BpmnProcessDefinitionModel) -> dict: + def _get_definition_dict_for_bpmn_process_definition( + cls, bpmn_process_definition: BpmnProcessDefinitionModel + ) -> dict: task_definitions = TaskDefinitionModel.query.filter_by( bpmn_process_definition_id=bpmn_process_definition.id ).all() @@ -543,7 +544,6 @@ class ProcessInstanceProcessor: ] = json.loads(task_definition.properties_json) return bpmn_process_definition_dict - @classmethod def _get_full_bpmn_json(cls, process_instance_model: ProcessInstanceModel) -> dict: if process_instance_model.serialized_bpmn_definition_id is None: @@ -562,17 +562,21 @@ class ProcessInstanceProcessor: "spec": {}, "subprocess_specs": {}, } - serialized_bpmn_definition['spec'] = cls._get_definition_dict_for_bpmn_process_definition(bpmn_process_definition) + serialized_bpmn_definition["spec"] = ( + cls._get_definition_dict_for_bpmn_process_definition( + bpmn_process_definition + ) + ) bpmn_process_subprocess_definitions = ( BpmnProcessDefinitionRelationshipModel.query.filter_by( bpmn_process_definition_parent_id=bpmn_process_definition.id ).all() ) - for ( - bpmn_subprocess_definition - ) in bpmn_process_subprocess_definitions: - spec = cls._get_definition_dict_for_bpmn_process_definition(bpmn_subprocess_definition) + for bpmn_subprocess_definition in bpmn_process_subprocess_definitions: + spec = cls._get_definition_dict_for_bpmn_process_definition( + bpmn_subprocess_definition + ) serialized_bpmn_definition["subprocess_specs"][ bpmn_subprocess_definition.bpmn_identifier ] = spec