From 00b10c484fbcb3886cd742c4984d3c4ef123e438 Mon Sep 17 00:00:00 2001 From: Philip Kalinsky Date: Wed, 22 Jan 2020 16:04:51 -0500 Subject: [PATCH] alembic migration to extend the state machine states enum --- alembic/env.py | 7 +++- ...19c44a8d5_state_machine_states_extended.py | 42 +++++++++++++++++++ 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 alembic/versions/26319c44a8d5_state_machine_states_extended.py diff --git a/alembic/env.py b/alembic/env.py index 91b96364..825f5e19 100644 --- a/alembic/env.py +++ b/alembic/env.py @@ -51,7 +51,9 @@ def run_migrations_offline(): """ url = config.get_main_option("sqlalchemy.url") context.configure( - url=url, target_metadata=target_metadata, literal_binds=True) + url=url, target_metadata=target_metadata, literal_binds=True, + compare_type=True + ) with context.begin_transaction(): context.run_migrations() @@ -72,7 +74,8 @@ def run_migrations_online(): with connectable.connect() as connection: context.configure( connection=connection, - target_metadata=target_metadata + target_metadata=target_metadata, + compare_type=True ) with context.begin_transaction(): diff --git a/alembic/versions/26319c44a8d5_state_machine_states_extended.py b/alembic/versions/26319c44a8d5_state_machine_states_extended.py new file mode 100644 index 00000000..a183295c --- /dev/null +++ b/alembic/versions/26319c44a8d5_state_machine_states_extended.py @@ -0,0 +1,42 @@ +"""state machine states extended + +Revision ID: 26319c44a8d5 +Revises: 59973fa17ded +Create Date: 2020-01-22 15:54:03.186751 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = '26319c44a8d5' # pragma: allowlist secret +down_revision = '59973fa17ded' # pragma: allowlist secret +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('portfolio_state_machines', 'state', + existing_type=sa.VARCHAR(length=30), + type_=sa.Enum('UNSTARTED', 'STARTING', 'STARTED', 'COMPLETED', 'FAILED', 'TENANT_CREATED', 'TENANT_IN_PROGRESS', 'TENANT_FAILED', 'BILLING_PROFILE_CREATION_CREATED', 'BILLING_PROFILE_CREATION_IN_PROGRESS', 'BILLING_PROFILE_CREATION_FAILED', 'BILLING_PROFILE_VERIFICATION_CREATED', 'BILLING_PROFILE_VERIFICATION_IN_PROGRESS', 'BILLING_PROFILE_VERIFICATION_FAILED', 'BILLING_PROFILE_TENANT_ACCESS_CREATED', 'BILLING_PROFILE_TENANT_ACCESS_IN_PROGRESS', 'BILLING_PROFILE_TENANT_ACCESS_FAILED', 'TASK_ORDER_BILLING_CREATION_CREATED', 'TASK_ORDER_BILLING_CREATION_IN_PROGRESS', 'TASK_ORDER_BILLING_CREATION_FAILED', 'TASK_ORDER_BILLING_VERIFICATION_CREATED', 'TASK_ORDER_BILLING_VERIFICATION_IN_PROGRESS', 'TASK_ORDER_BILLING_VERIFICATION_FAILED', 'BILLING_INSTRUCTION_CREATED', 'BILLING_INSTRUCTION_IN_PROGRESS', 'BILLING_INSTRUCTION_FAILED', name='fsmstates', native_enum=False, create_constraint=False), + existing_nullable=False) + op.alter_column('portfolios', 'defense_component', + existing_type=postgresql.ARRAY(sa.VARCHAR()), + type_=sa.String(), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('portfolios', 'defense_component', + existing_type=sa.String(), + type_=postgresql.ARRAY(sa.VARCHAR()), + existing_nullable=False) + op.alter_column('portfolio_state_machines', 'state', + existing_type=sa.Enum('UNSTARTED', 'STARTING', 'STARTED', 'COMPLETED', 'FAILED', 'TENANT_CREATED', 'TENANT_IN_PROGRESS', 'TENANT_FAILED', 'BILLING_PROFILE_CREATION_CREATED', 'BILLING_PROFILE_CREATION_IN_PROGRESS', 'BILLING_PROFILE_CREATION_FAILED', 'BILLING_PROFILE_VERIFICATION_CREATED', 'BILLING_PROFILE_VERIFICATION_IN_PROGRESS', 'BILLING_PROFILE_VERIFICATION_FAILED', 'BILLING_PROFILE_TENANT_ACCESS_CREATED', 'BILLING_PROFILE_TENANT_ACCESS_IN_PROGRESS', 'BILLING_PROFILE_TENANT_ACCESS_FAILED', 'TASK_ORDER_BILLING_CREATION_CREATED', 'TASK_ORDER_BILLING_CREATION_IN_PROGRESS', 'TASK_ORDER_BILLING_CREATION_FAILED', 'TASK_ORDER_BILLING_VERIFICATION_CREATED', 'TASK_ORDER_BILLING_VERIFICATION_IN_PROGRESS', 'TASK_ORDER_BILLING_VERIFICATION_FAILED', 'BILLING_INSTRUCTION_CREATED', 'BILLING_INSTRUCTION_IN_PROGRESS', 'BILLING_INSTRUCTION_FAILED', name='fsmstates', native_enum=False), + type_=sa.VARCHAR(length=30), + existing_nullable=False) + # ### end Alembic commands ###