"""evatest

Revision ID: b50bdf52415f
Revises: 2b3e3a577edf
Create Date: 2024-12-18 10:34:40.746279

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = 'b50bdf52415f'
down_revision = '2b3e3a577edf'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index('ix_cmf_testcase_run_local_links_left_id', table_name='cmf_testcase_run_local_links')
    op.drop_index('ix_cmf_testcase_run_local_links_parent_id', table_name='cmf_testcase_run_local_links')
    op.drop_index('ix_cmf_testcase_run_local_links_right_id', table_name='cmf_testcase_run_local_links')
    op.drop_index('ix_cmf_testcase_run_local_links_root_id', table_name='cmf_testcase_run_local_links')
    op.drop_table('cmf_testcase_run_local_links')
    op.drop_index('ix_cmf_testcycle_testcase_result_spectators_left_id', table_name='cmf_testcycle_testcase_result_spectators')
    op.drop_index('ix_cmf_testcycle_testcase_result_spectators_parent_id', table_name='cmf_testcycle_testcase_result_spectators')
    op.drop_index('ix_cmf_testcycle_testcase_result_spectators_right_id', table_name='cmf_testcycle_testcase_result_spectators')
    op.drop_index('ix_cmf_testcycle_testcase_result_spectators_root_id', table_name='cmf_testcycle_testcase_result_spectators')
    op.drop_table('cmf_testcycle_testcase_result_spectators')
    op.drop_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_left_id', table_name='cmf_testcycle_testcase_result_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_parent_id', table_name='cmf_testcycle_testcase_result_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_right_id', table_name='cmf_testcycle_testcase_result_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_root_id', table_name='cmf_testcycle_testcase_result_cmf_owner_assistants')
    op.drop_table('cmf_testcycle_testcase_result_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcase_run_cmf_owner_assistants_left_id', table_name='cmf_testcase_run_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcase_run_cmf_owner_assistants_parent_id', table_name='cmf_testcase_run_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcase_run_cmf_owner_assistants_right_id', table_name='cmf_testcase_run_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcase_run_cmf_owner_assistants_root_id', table_name='cmf_testcase_run_cmf_owner_assistants')
    op.drop_table('cmf_testcase_run_cmf_owner_assistants')
    op.drop_index('ix_cmf_testcycle_testcase_result_executors_left_id', table_name='cmf_testcycle_testcase_result_executors')
    op.drop_index('ix_cmf_testcycle_testcase_result_executors_parent_id', table_name='cmf_testcycle_testcase_result_executors')
    op.drop_index('ix_cmf_testcycle_testcase_result_executors_right_id', table_name='cmf_testcycle_testcase_result_executors')
    op.drop_index('ix_cmf_testcycle_testcase_result_executors_root_id', table_name='cmf_testcycle_testcase_result_executors')
    op.drop_table('cmf_testcycle_testcase_result_executors')
    op.drop_index('ix_cmf_testcycle_testcase_result_local_links_left_id', table_name='cmf_testcycle_testcase_result_local_links')
    op.drop_index('ix_cmf_testcycle_testcase_result_local_links_parent_id', table_name='cmf_testcycle_testcase_result_local_links')
    op.drop_index('ix_cmf_testcycle_testcase_result_local_links_right_id', table_name='cmf_testcycle_testcase_result_local_links')
    op.drop_index('ix_cmf_testcycle_testcase_result_local_links_root_id', table_name='cmf_testcycle_testcase_result_local_links')
    op.drop_table('cmf_testcycle_testcase_result_local_links')
    op.drop_index('ix_cmf_testcase_run_activity_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_alarm_date', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_approved', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_cache_status_opt_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_cache_status_type', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_cloned_from_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_cmf_owner_assistant_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_company_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_deadline', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_default_task_workflow_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_is_template', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_logic_prefix', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_logic_type_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_parent_logic_prefix', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_perm_security_level_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_resolution_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_scheme_wf_id', table_name='cmf_testcase_run')
    op.drop_index('ix_cmf_testcase_run_workflow_id', table_name='cmf_testcase_run')
    op.drop_constraint('cmf_testcase_run_company_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_resolution_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_workflow_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_cache_status_opt_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_logic_type_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_perm_security_level_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_default_task_workflow_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_scheme_wf_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_constraint('cmf_testcase_run_activity_id_fkey', 'cmf_testcase_run', type_='foreignkey')
    op.drop_column('cmf_testcase_run', 'is_template')
    op.drop_column('cmf_testcase_run', 'mark')
    op.drop_column('cmf_testcase_run', 'is_public')
    op.drop_column('cmf_testcase_run', 'logic_type_id')
    op.drop_column('cmf_testcase_run', 'ui_view_form_options')
    op.drop_column('cmf_testcase_run', 'perm_security_level_id')
    op.drop_column('cmf_testcase_run', 'alarm_date')
    op.drop_column('cmf_testcase_run', 'cloned_from_id')
    op.drop_column('cmf_testcase_run', 'approved')
    op.drop_column('cmf_testcase_run', 'period_next_date')
    op.drop_column('cmf_testcase_run', 'resolution_id')
    op.drop_column('cmf_testcase_run', 'plan_end_date')
    op.drop_column('cmf_testcase_run', 'perm_policy')
    op.drop_column('cmf_testcase_run', 'status_review_at')
    op.drop_column('cmf_testcase_run', 'company_id')
    op.drop_column('cmf_testcase_run', 'is_public_editable')
    op.drop_column('cmf_testcase_run', 'status_closed_at')
    op.drop_column('cmf_testcase_run', 'deadline')
    op.drop_column('cmf_testcase_run', 'plan_start_date')
    op.drop_column('cmf_testcase_run', 'parent_logic_prefix')
    op.drop_column('cmf_testcase_run', 'default_task_workflow_id')
    op.drop_column('cmf_testcase_run', 'cmf_owner_assistant_id')
    op.drop_column('cmf_testcase_run', 'logic_prefix')
    op.drop_column('cmf_testcase_run', 'user_rating_count')
    op.drop_column('cmf_testcase_run', 'is_penalty')
    op.drop_column('cmf_testcase_run', 'status_in_progress_start')
    op.drop_column('cmf_testcase_run', 'is_public_comments')
    op.drop_column('cmf_testcase_run', 'ui_view_form')
    op.drop_column('cmf_testcase_run', 'workflow_id')
    op.drop_column('cmf_testcase_run', 'status_modified_at')
    op.drop_column('cmf_testcase_run', 'sharelink_hash')
    op.drop_column('cmf_testcase_run', 'perm_policy_guest')
    op.drop_column('cmf_testcase_run', 'user_rating')
    op.drop_column('cmf_testcase_run', 'perm_policy_sharelink')
    op.drop_column('cmf_testcase_run', 'cache_status_type')
    op.drop_column('cmf_testcase_run', 'scheme_wf_id')
    op.drop_column('cmf_testcase_run', 'has_children_archived')
    op.drop_column('cmf_testcase_run', 'status_in_progress_end')
    op.drop_column('cmf_testcase_run', 'cache_fields')
    op.drop_column('cmf_testcase_run', 'perm_policy_anonymous')
    op.drop_column('cmf_testcase_run', 'cache_status_opt_id')
    op.drop_column('cmf_testcase_run', 'period_interval')
    op.drop_column('cmf_testcase_run', 'no_control')
    op.drop_column('cmf_testcase_run', 'activity_id')
    op.drop_index('ix_cmf_testcycle_testcase_result_activity_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_alarm_date', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_approved', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_cache_status_opt_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_cache_status_type', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_cloned_from_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistant_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_company_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_deadline', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_default_task_workflow_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_is_template', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_logic_prefix', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_logic_type_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_parent_logic_prefix', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_perm_security_level_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_resolution_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_scheme_wf_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_waiting_for_id', table_name='cmf_testcycle_testcase_result')
    op.drop_index('ix_cmf_testcycle_testcase_result_workflow_id', table_name='cmf_testcycle_testcase_result')
    op.drop_constraint('cmf_testcycle_testcase_result_perm_security_level_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_default_task_workflow_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_resolution_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_activity_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_company_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_cache_status_opt_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_logic_type_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_workflow_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_constraint('cmf_testcycle_testcase_result_scheme_wf_id_fkey', 'cmf_testcycle_testcase_result', type_='foreignkey')
    op.drop_column('cmf_testcycle_testcase_result', 'is_template')
    op.drop_column('cmf_testcycle_testcase_result', 'mark')
    op.drop_column('cmf_testcycle_testcase_result', 'is_public')
    op.drop_column('cmf_testcycle_testcase_result', 'logic_type_id')
    op.drop_column('cmf_testcycle_testcase_result', 'ui_view_form_options')
    op.drop_column('cmf_testcycle_testcase_result', 'perm_security_level_id')
    op.drop_column('cmf_testcycle_testcase_result', 'alarm_date')
    op.drop_column('cmf_testcycle_testcase_result', 'cloned_from_id')
    op.drop_column('cmf_testcycle_testcase_result', 'approved')
    op.drop_column('cmf_testcycle_testcase_result', 'period_next_date')
    op.drop_column('cmf_testcycle_testcase_result', 'resolution_id')
    op.drop_column('cmf_testcycle_testcase_result', 'plan_end_date')
    op.drop_column('cmf_testcycle_testcase_result', 'perm_policy')
    op.drop_column('cmf_testcycle_testcase_result', 'status_review_at')
    op.drop_column('cmf_testcycle_testcase_result', 'company_id')
    op.drop_column('cmf_testcycle_testcase_result', 'is_public_editable')
    op.drop_column('cmf_testcycle_testcase_result', 'status_closed_at')
    op.drop_column('cmf_testcycle_testcase_result', 'deadline')
    op.drop_column('cmf_testcycle_testcase_result', 'plan_start_date')
    op.drop_column('cmf_testcycle_testcase_result', 'parent_logic_prefix')
    op.drop_column('cmf_testcycle_testcase_result', 'default_task_workflow_id')
    op.drop_column('cmf_testcycle_testcase_result', 'cmf_owner_assistant_id')
    op.drop_column('cmf_testcycle_testcase_result', 'logic_prefix')
    op.drop_column('cmf_testcycle_testcase_result', 'user_rating_count')
    op.drop_column('cmf_testcycle_testcase_result', 'is_penalty')
    op.drop_column('cmf_testcycle_testcase_result', 'status_in_progress_start')
    op.drop_column('cmf_testcycle_testcase_result', 'waiting_for_id')
    op.drop_column('cmf_testcycle_testcase_result', 'is_public_comments')
    op.drop_column('cmf_testcycle_testcase_result', 'ui_view_form')
    op.drop_column('cmf_testcycle_testcase_result', 'workflow_id')
    op.drop_column('cmf_testcycle_testcase_result', 'status_modified_at')
    op.drop_column('cmf_testcycle_testcase_result', 'sharelink_hash')
    op.drop_column('cmf_testcycle_testcase_result', 'perm_policy_guest')
    op.drop_column('cmf_testcycle_testcase_result', 'user_rating')
    op.drop_column('cmf_testcycle_testcase_result', 'perm_policy_sharelink')
    op.drop_column('cmf_testcycle_testcase_result', 'cache_status_type')
    op.drop_column('cmf_testcycle_testcase_result', 'scheme_wf_id')
    op.drop_column('cmf_testcycle_testcase_result', 'has_children_archived')
    op.drop_column('cmf_testcycle_testcase_result', 'status_in_progress_end')
    op.drop_column('cmf_testcycle_testcase_result', 'cache_fields')
    op.drop_column('cmf_testcycle_testcase_result', 'perm_policy_anonymous')
    op.drop_column('cmf_testcycle_testcase_result', 'cache_status_opt_id')
    op.drop_column('cmf_testcycle_testcase_result', 'period_interval')
    op.drop_column('cmf_testcycle_testcase_result', 'no_control')
    op.drop_column('cmf_testcycle_testcase_result', 'activity_id')
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('cmf_testcycle_testcase_result', sa.Column('activity_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('no_control', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('period_interval', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('cache_status_opt_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('perm_policy_anonymous', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('cache_fields', sa.TEXT(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('status_in_progress_end', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('has_children_archived', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('scheme_wf_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('cache_status_type', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('perm_policy_sharelink', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('user_rating', sa.NUMERIC(precision=14, scale=2), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('perm_policy_guest', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('sharelink_hash', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('status_modified_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('workflow_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('ui_view_form', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('is_public_comments', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('waiting_for_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('status_in_progress_start', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('is_penalty', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('user_rating_count', sa.INTEGER(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('logic_prefix', sa.VARCHAR(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('cmf_owner_assistant_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('default_task_workflow_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('parent_logic_prefix', sa.VARCHAR(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('plan_start_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('deadline', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('status_closed_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('is_public_editable', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('company_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('status_review_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('perm_policy', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('plan_end_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('resolution_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('period_next_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('approved', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('cloned_from_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('alarm_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('perm_security_level_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('ui_view_form_options', sa.TEXT(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('logic_type_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('is_public', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('mark', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcycle_testcase_result', sa.Column('is_template', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.create_foreign_key('cmf_testcycle_testcase_result_scheme_wf_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_scheme_wf', ['scheme_wf_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_workflow_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_workflow', ['workflow_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_logic_type_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_logic_type', ['logic_type_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_cache_status_opt_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_status_opt', ['cache_status_opt_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_company_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_company', ['company_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_activity_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_activity', ['activity_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_resolution_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_resolution', ['resolution_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_default_task_workflow_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_workflow', ['default_task_workflow_id'], ['id'])
    op.create_foreign_key('cmf_testcycle_testcase_result_perm_security_level_id_fkey', 'cmf_testcycle_testcase_result', 'cmf_security_level', ['perm_security_level_id'], ['id'])
    op.create_index('ix_cmf_testcycle_testcase_result_workflow_id', 'cmf_testcycle_testcase_result', ['workflow_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_waiting_for_id', 'cmf_testcycle_testcase_result', ['waiting_for_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_scheme_wf_id', 'cmf_testcycle_testcase_result', ['scheme_wf_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_resolution_id', 'cmf_testcycle_testcase_result', ['resolution_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_perm_security_level_id', 'cmf_testcycle_testcase_result', ['perm_security_level_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_parent_logic_prefix', 'cmf_testcycle_testcase_result', ['parent_logic_prefix'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_logic_type_id', 'cmf_testcycle_testcase_result', ['logic_type_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_logic_prefix', 'cmf_testcycle_testcase_result', ['logic_prefix'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_is_template', 'cmf_testcycle_testcase_result', ['is_template'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_default_task_workflow_id', 'cmf_testcycle_testcase_result', ['default_task_workflow_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_deadline', 'cmf_testcycle_testcase_result', ['deadline'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_company_id', 'cmf_testcycle_testcase_result', ['company_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistant_id', 'cmf_testcycle_testcase_result', ['cmf_owner_assistant_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cloned_from_id', 'cmf_testcycle_testcase_result', ['cloned_from_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cache_status_type', 'cmf_testcycle_testcase_result', ['cache_status_type'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cache_status_opt_id', 'cmf_testcycle_testcase_result', ['cache_status_opt_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_approved', 'cmf_testcycle_testcase_result', ['approved'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_alarm_date', 'cmf_testcycle_testcase_result', ['alarm_date'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_activity_id', 'cmf_testcycle_testcase_result', ['activity_id'], unique=False)
    op.add_column('cmf_testcase_run', sa.Column('activity_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('no_control', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('period_interval', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('cache_status_opt_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('perm_policy_anonymous', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('cache_fields', sa.TEXT(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('status_in_progress_end', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('has_children_archived', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('scheme_wf_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('cache_status_type', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('perm_policy_sharelink', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('user_rating', sa.NUMERIC(precision=14, scale=2), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('perm_policy_guest', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('sharelink_hash', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('status_modified_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('workflow_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('ui_view_form', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('is_public_comments', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('status_in_progress_start', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('is_penalty', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('user_rating_count', sa.INTEGER(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('logic_prefix', sa.VARCHAR(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('cmf_owner_assistant_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('default_task_workflow_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('parent_logic_prefix', sa.VARCHAR(), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('plan_start_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('deadline', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('status_closed_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('is_public_editable', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('company_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('status_review_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('perm_policy', sa.VARCHAR(length=32), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('plan_end_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('resolution_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('period_next_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('approved', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('cloned_from_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('alarm_date', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('perm_security_level_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('ui_view_form_options', sa.TEXT(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('logic_type_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('is_public', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.add_column('cmf_testcase_run', sa.Column('mark', sa.VARCHAR(length=32), autoincrement=False, nullable=True))
    op.add_column('cmf_testcase_run', sa.Column('is_template', sa.BOOLEAN(), autoincrement=False, nullable=False))
    op.create_foreign_key('cmf_testcase_run_activity_id_fkey', 'cmf_testcase_run', 'cmf_activity', ['activity_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_scheme_wf_id_fkey', 'cmf_testcase_run', 'cmf_scheme_wf', ['scheme_wf_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_default_task_workflow_id_fkey', 'cmf_testcase_run', 'cmf_workflow', ['default_task_workflow_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_perm_security_level_id_fkey', 'cmf_testcase_run', 'cmf_security_level', ['perm_security_level_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_logic_type_id_fkey', 'cmf_testcase_run', 'cmf_logic_type', ['logic_type_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_cache_status_opt_id_fkey', 'cmf_testcase_run', 'cmf_status_opt', ['cache_status_opt_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_workflow_id_fkey', 'cmf_testcase_run', 'cmf_workflow', ['workflow_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_resolution_id_fkey', 'cmf_testcase_run', 'cmf_resolution', ['resolution_id'], ['id'])
    op.create_foreign_key('cmf_testcase_run_company_id_fkey', 'cmf_testcase_run', 'cmf_company', ['company_id'], ['id'])
    op.create_index('ix_cmf_testcase_run_workflow_id', 'cmf_testcase_run', ['workflow_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_scheme_wf_id', 'cmf_testcase_run', ['scheme_wf_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_resolution_id', 'cmf_testcase_run', ['resolution_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_perm_security_level_id', 'cmf_testcase_run', ['perm_security_level_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_parent_logic_prefix', 'cmf_testcase_run', ['parent_logic_prefix'], unique=False)
    op.create_index('ix_cmf_testcase_run_logic_type_id', 'cmf_testcase_run', ['logic_type_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_logic_prefix', 'cmf_testcase_run', ['logic_prefix'], unique=False)
    op.create_index('ix_cmf_testcase_run_is_template', 'cmf_testcase_run', ['is_template'], unique=False)
    op.create_index('ix_cmf_testcase_run_default_task_workflow_id', 'cmf_testcase_run', ['default_task_workflow_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_deadline', 'cmf_testcase_run', ['deadline'], unique=False)
    op.create_index('ix_cmf_testcase_run_company_id', 'cmf_testcase_run', ['company_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cmf_owner_assistant_id', 'cmf_testcase_run', ['cmf_owner_assistant_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cloned_from_id', 'cmf_testcase_run', ['cloned_from_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cache_status_type', 'cmf_testcase_run', ['cache_status_type'], unique=False)
    op.create_index('ix_cmf_testcase_run_cache_status_opt_id', 'cmf_testcase_run', ['cache_status_opt_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_approved', 'cmf_testcase_run', ['approved'], unique=False)
    op.create_index('ix_cmf_testcase_run_alarm_date', 'cmf_testcase_run', ['alarm_date'], unique=False)
    op.create_index('ix_cmf_testcase_run_activity_id', 'cmf_testcase_run', ['activity_id'], unique=False)
    op.create_table('cmf_testcycle_testcase_result_local_links',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcycle_testcase_result_local_links_pkey')
    )
    op.create_index('ix_cmf_testcycle_testcase_result_local_links_root_id', 'cmf_testcycle_testcase_result_local_links', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_local_links_right_id', 'cmf_testcycle_testcase_result_local_links', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_local_links_parent_id', 'cmf_testcycle_testcase_result_local_links', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_local_links_left_id', 'cmf_testcycle_testcase_result_local_links', ['left_id'], unique=False)
    op.create_table('cmf_testcycle_testcase_result_executors',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcycle_testcase_result_executors_pkey')
    )
    op.create_index('ix_cmf_testcycle_testcase_result_executors_root_id', 'cmf_testcycle_testcase_result_executors', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_executors_right_id', 'cmf_testcycle_testcase_result_executors', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_executors_parent_id', 'cmf_testcycle_testcase_result_executors', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_executors_left_id', 'cmf_testcycle_testcase_result_executors', ['left_id'], unique=False)
    op.create_table('cmf_testcase_run_cmf_owner_assistants',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcase_run_cmf_owner_assistants_pkey')
    )
    op.create_index('ix_cmf_testcase_run_cmf_owner_assistants_root_id', 'cmf_testcase_run_cmf_owner_assistants', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cmf_owner_assistants_right_id', 'cmf_testcase_run_cmf_owner_assistants', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cmf_owner_assistants_parent_id', 'cmf_testcase_run_cmf_owner_assistants', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_cmf_owner_assistants_left_id', 'cmf_testcase_run_cmf_owner_assistants', ['left_id'], unique=False)
    op.create_table('cmf_testcycle_testcase_result_cmf_owner_assistants',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcycle_testcase_result_cmf_owner_assistants_pkey')
    )
    op.create_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_root_id', 'cmf_testcycle_testcase_result_cmf_owner_assistants', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_right_id', 'cmf_testcycle_testcase_result_cmf_owner_assistants', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_parent_id', 'cmf_testcycle_testcase_result_cmf_owner_assistants', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_cmf_owner_assistants_left_id', 'cmf_testcycle_testcase_result_cmf_owner_assistants', ['left_id'], unique=False)
    op.create_table('cmf_testcycle_testcase_result_spectators',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcycle_testcase_result_spectators_pkey')
    )
    op.create_index('ix_cmf_testcycle_testcase_result_spectators_root_id', 'cmf_testcycle_testcase_result_spectators', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_spectators_right_id', 'cmf_testcycle_testcase_result_spectators', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_spectators_parent_id', 'cmf_testcycle_testcase_result_spectators', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcycle_testcase_result_spectators_left_id', 'cmf_testcycle_testcase_result_spectators', ['left_id'], unique=False)
    op.create_table('cmf_testcase_run_local_links',
    sa.Column('id', sa.VARCHAR(length=128), autoincrement=False, nullable=False),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('description', sa.VARCHAR(length=4096), autoincrement=False, nullable=True),
    sa.Column('left_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('right_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('left_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('right_name_cache', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name='cmf_testcase_run_local_links_pkey')
    )
    op.create_index('ix_cmf_testcase_run_local_links_root_id', 'cmf_testcase_run_local_links', ['root_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_local_links_right_id', 'cmf_testcase_run_local_links', ['right_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_local_links_parent_id', 'cmf_testcase_run_local_links', ['parent_id'], unique=False)
    op.create_index('ix_cmf_testcase_run_local_links_left_id', 'cmf_testcase_run_local_links', ['left_id'], unique=False)
    # ### end Alembic commands ###
