"""added lms models

Revision ID: 4a40555d866a
Revises: 9ec5d131c6d1
Create Date: 2025-02-06 16:48:10.222986

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '4a40555d866a'
down_revision = '9ec5d131c6d1'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('cmf_achievement',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('type', sa.String(length=32), nullable=False, server_default='certificate'),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_achievement_cmf_author_id'), 'cmf_achievement', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_created_at'), 'cmf_achievement', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_deleted'), 'cmf_achievement', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_import_id'), 'cmf_achievement', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_locked_at'), 'cmf_achievement', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_locked_by_id'), 'cmf_achievement', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_modified_at'), 'cmf_achievement', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_modified_by_id'), 'cmf_achievement', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_owner_id'), 'cmf_achievement', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_version'), 'cmf_achievement', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_cmf_viewed_at'), 'cmf_achievement', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_code'), 'cmf_achievement', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_achievement_name'), 'cmf_achievement', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_orderno'), 'cmf_achievement', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_parent_id'), 'cmf_achievement', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_perm_acl_id'), 'cmf_achievement', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_perm_parent_id'), 'cmf_achievement', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_project_id'), 'cmf_achievement', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_root_parent_id'), 'cmf_achievement', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_achievement_tree_parent_id'), 'cmf_achievement', ['tree_parent_id'], unique=False)
    op.create_table('cmf_course',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.Column('logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form', sa.String(length=32), nullable=False),
    sa.Column('parent_logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form_options', sa.TEXT(), nullable=False),
    sa.Column('status_modified_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_start', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_end', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_review_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_closed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('no_control', sa.Boolean(), nullable=False),
    sa.Column('priority', sa.Integer(), nullable=False),
    sa.Column('mark', sa.String(length=32), nullable=True),
    sa.Column('user_rating', sa.Numeric(precision=14, scale=2), nullable=True),
    sa.Column('user_rating_count', sa.Integer(), nullable=False),
    sa.Column('alarm_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('deadline', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_start_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_end_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_next_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_interval', sa.String(length=32), nullable=True),
    sa.Column('is_template', sa.Boolean(), nullable=False),
    sa.Column('is_penalty', sa.Boolean(), nullable=False),
    sa.Column('cache_status_type', sa.String(length=32), nullable=True),
    sa.Column('cache_fields', sa.TEXT(), nullable=True),
    sa.Column('approved', sa.Boolean(), nullable=False),
    sa.Column('perm_policy', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_guest', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_anonymous', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_sharelink', sa.String(length=32), nullable=False),
    sa.Column('sharelink_hash', sa.String(length=32), nullable=True),
    sa.Column('time_estimate', sa.Integer(), nullable=True),
    sa.Column('learn_access_type', sa.String(length=32), nullable=True),
    sa.Column('lesson_order_type', sa.String(length=32), nullable=True),
    sa.Column('default_notify_message', sa.String(length=256), nullable=True),
    sa.Column('time_limit', sa.Integer(), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=False),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('workflow_id', sa.String(length=64), nullable=True),
    sa.Column('default_task_workflow_id', sa.String(length=64), nullable=True),
    sa.Column('logic_type_id', sa.String(length=64), nullable=True),
    sa.Column('scheme_wf_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_assistant_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_id', sa.String(length=64), nullable=True),
    sa.Column('resolution_id', sa.String(length=64), nullable=True),
    sa.Column('status_id', sa.String(length=64), nullable=True),
    sa.Column('company_id', sa.String(length=64), nullable=True),
    sa.Column('responsible_id', sa.String(length=64), nullable=True),
    sa.Column('waiting_for_id', sa.String(length=64), nullable=True),
    sa.Column('cloned_from_id', sa.String(length=64), nullable=True),
    sa.Column('activity_id', sa.String(length=64), nullable=True),
    sa.Column('cache_status_opt_id', sa.String(length=64), nullable=True),
    sa.Column('achievement_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['achievement_id'], ['cmf_achievement.id'], ),
    sa.ForeignKeyConstraint(['activity_id'], ['cmf_activity.id'], ),
    sa.ForeignKeyConstraint(['cache_status_opt_id'], ['cmf_status_opt.id'], ),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['company_id'], ['cmf_company.id'], ),
    sa.ForeignKeyConstraint(['default_task_workflow_id'], ['cmf_workflow.id'], ),
    sa.ForeignKeyConstraint(['logic_type_id'], ['cmf_logic_type.id'], ),
    sa.ForeignKeyConstraint(['parent_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['perm_security_level_id'], ['cmf_security_level.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['resolution_id'], ['cmf_resolution.id'], ),
    sa.ForeignKeyConstraint(['scheme_wf_id'], ['cmf_scheme_wf.id'], ),
    sa.ForeignKeyConstraint(['status_id'], ['cmf_status.id'], ),
    sa.ForeignKeyConstraint(['workflow_id'], ['cmf_workflow.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_achievement_id'), 'cmf_course', ['achievement_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_activity_id'), 'cmf_course', ['activity_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_alarm_date'), 'cmf_course', ['alarm_date'], unique=False)
    op.create_index(op.f('ix_cmf_course_approved'), 'cmf_course', ['approved'], unique=False)
    op.create_index(op.f('ix_cmf_course_cache_status_opt_id'), 'cmf_course', ['cache_status_opt_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cache_status_type'), 'cmf_course', ['cache_status_type'], unique=False)
    op.create_index(op.f('ix_cmf_course_cloned_from_id'), 'cmf_course', ['cloned_from_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_author_id'), 'cmf_course', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_created_at'), 'cmf_course', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_deleted'), 'cmf_course', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_import_id'), 'cmf_course', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_locked_at'), 'cmf_course', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_locked_by_id'), 'cmf_course', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_modified_at'), 'cmf_course', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_modified_by_id'), 'cmf_course', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_owner_assistant_id'), 'cmf_course', ['cmf_owner_assistant_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_owner_id'), 'cmf_course', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_version'), 'cmf_course', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_viewed_at'), 'cmf_course', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_code'), 'cmf_course', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_course_company_id'), 'cmf_course', ['company_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_deadline'), 'cmf_course', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_course_default_task_workflow_id'), 'cmf_course', ['default_task_workflow_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_is_template'), 'cmf_course', ['is_template'], unique=False)
    op.create_index(op.f('ix_cmf_course_logic_prefix'), 'cmf_course', ['logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_course_logic_type_id'), 'cmf_course', ['logic_type_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_name'), 'cmf_course', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_course_orderno'), 'cmf_course', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_course_parent_id'), 'cmf_course', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_parent_logic_prefix'), 'cmf_course', ['parent_logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_course_perm_acl_id'), 'cmf_course', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_perm_parent_id'), 'cmf_course', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_perm_security_level_id'), 'cmf_course', ['perm_security_level_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_project_id'), 'cmf_course', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_resolution_id'), 'cmf_course', ['resolution_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_responsible_id'), 'cmf_course', ['responsible_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_root_parent_id'), 'cmf_course', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_scheme_wf_id'), 'cmf_course', ['scheme_wf_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_status_id'), 'cmf_course', ['status_id'], unique=False)
    op.create_index('ix_cmf_course_text_gin_trgm', 'cmf_course', ['text'], unique=False, postgresql_using='gin', postgresql_ops={'text': 'gin_trgm_ops'})
    op.create_index(op.f('ix_cmf_course_tree_parent_id'), 'cmf_course', ['tree_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_waiting_for_id'), 'cmf_course', ['waiting_for_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_workflow_id'), 'cmf_course', ['workflow_id'], unique=False)
    op.create_table('cmf_course_cmf_owner_assistants',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_cmf_owner_assistants_left_id'), 'cmf_course_cmf_owner_assistants', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_owner_assistants_parent_id'), 'cmf_course_cmf_owner_assistants', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_owner_assistants_right_id'), 'cmf_course_cmf_owner_assistants', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_cmf_owner_assistants_root_id'), 'cmf_course_cmf_owner_assistants', ['root_id'], unique=False)
    op.create_table('cmf_course_document_result',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.Column('status', sa.String(length=32), nullable=False, server_default='TODO'),
    sa.Column('summary_pct', sa.Integer(), nullable=False, server_default='0'),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('document_id', sa.String(length=64), nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['document_id'], ['cmf_document.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_document_result_cmf_author_id'), 'cmf_course_document_result', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_created_at'), 'cmf_course_document_result', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_deleted'), 'cmf_course_document_result', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_import_id'), 'cmf_course_document_result', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_locked_at'), 'cmf_course_document_result', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_locked_by_id'), 'cmf_course_document_result', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_modified_at'), 'cmf_course_document_result', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_modified_by_id'), 'cmf_course_document_result', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_owner_id'), 'cmf_course_document_result', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_version'), 'cmf_course_document_result', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_cmf_viewed_at'), 'cmf_course_document_result', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_code'), 'cmf_course_document_result', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_course_document_result_document_id'), 'cmf_course_document_result', ['document_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_name'), 'cmf_course_document_result', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_orderno'), 'cmf_course_document_result', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_parent_id'), 'cmf_course_document_result', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_perm_acl_id'), 'cmf_course_document_result', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_perm_parent_id'), 'cmf_course_document_result', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_project_id'), 'cmf_course_document_result', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_root_parent_id'), 'cmf_course_document_result', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_document_result_tree_parent_id'), 'cmf_course_document_result', ['tree_parent_id'], unique=False)
    op.create_table('cmf_course_executors',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_executors_left_id'), 'cmf_course_executors', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_executors_parent_id'), 'cmf_course_executors', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_executors_right_id'), 'cmf_course_executors', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_executors_root_id'), 'cmf_course_executors', ['root_id'], unique=False)
    op.create_table('cmf_course_local_links',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_local_links_left_id'), 'cmf_course_local_links', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_local_links_parent_id'), 'cmf_course_local_links', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_local_links_right_id'), 'cmf_course_local_links', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_local_links_root_id'), 'cmf_course_local_links', ['root_id'], unique=False)
    op.create_table('cmf_course_progress',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('status', sa.String(length=32), nullable=False, server_default='open'),
    sa.Column('status_in_progress_start', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_closed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('progress_pct', sa.Integer(), nullable=False, server_default='0'),
    sa.Column('plan_start_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_end_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('course_id', sa.String(length=64), nullable=False),
    sa.Column('responsible_id', sa.String(length=64), nullable=False),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['course_id'], ['cmf_course.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['responsible_id'], ['cmf_person.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_progress_cmf_author_id'), 'cmf_course_progress', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_created_at'), 'cmf_course_progress', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_deleted'), 'cmf_course_progress', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_import_id'), 'cmf_course_progress', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_locked_at'), 'cmf_course_progress', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_locked_by_id'), 'cmf_course_progress', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_modified_at'), 'cmf_course_progress', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_modified_by_id'), 'cmf_course_progress', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_owner_id'), 'cmf_course_progress', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_version'), 'cmf_course_progress', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_cmf_viewed_at'), 'cmf_course_progress', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_code'), 'cmf_course_progress', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_course_progress_course_id'), 'cmf_course_progress', ['course_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_name'), 'cmf_course_progress', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_orderno'), 'cmf_course_progress', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_parent_id'), 'cmf_course_progress', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_perm_acl_id'), 'cmf_course_progress', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_perm_parent_id'), 'cmf_course_progress', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_project_id'), 'cmf_course_progress', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_responsible_id'), 'cmf_course_progress', ['responsible_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_root_parent_id'), 'cmf_course_progress', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_progress_tree_parent_id'), 'cmf_course_progress', ['tree_parent_id'], unique=False)
    op.create_table('cmf_course_spectators',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_course_spectators_left_id'), 'cmf_course_spectators', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_spectators_parent_id'), 'cmf_course_spectators', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_spectators_right_id'), 'cmf_course_spectators', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_course_spectators_root_id'), 'cmf_course_spectators', ['root_id'], unique=False)
    op.create_table('cmf_desk',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_desk_cmf_author_id'), 'cmf_desk', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_created_at'), 'cmf_desk', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_deleted'), 'cmf_desk', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_import_id'), 'cmf_desk', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_locked_at'), 'cmf_desk', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_locked_by_id'), 'cmf_desk', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_modified_at'), 'cmf_desk', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_modified_by_id'), 'cmf_desk', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_owner_id'), 'cmf_desk', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_version'), 'cmf_desk', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_desk_cmf_viewed_at'), 'cmf_desk', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_desk_code'), 'cmf_desk', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_desk_name'), 'cmf_desk', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_desk_orderno'), 'cmf_desk', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_desk_parent_id'), 'cmf_desk', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_perm_acl_id'), 'cmf_desk', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_perm_parent_id'), 'cmf_desk', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_project_id'), 'cmf_desk', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_root_parent_id'), 'cmf_desk', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_desk_tree_parent_id'), 'cmf_desk', ['tree_parent_id'], unique=False)
    op.create_table('cmf_document_docs_links',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_document_docs_links_left_id'), 'cmf_document_docs_links', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_document_docs_links_parent_id'), 'cmf_document_docs_links', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_document_docs_links_right_id'), 'cmf_document_docs_links', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_document_docs_links_root_id'), 'cmf_document_docs_links', ['root_id'], unique=False)
    op.create_table('cmf_exam',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.Column('logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form', sa.String(length=32), nullable=False),
    sa.Column('parent_logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form_options', sa.TEXT(), nullable=False),
    sa.Column('status_modified_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_start', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_end', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_review_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_closed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('no_control', sa.Boolean(), nullable=False),
    sa.Column('priority', sa.Integer(), nullable=False),
    sa.Column('mark', sa.String(length=32), nullable=True),
    sa.Column('user_rating', sa.Numeric(precision=14, scale=2), nullable=True),
    sa.Column('user_rating_count', sa.Integer(), nullable=False),
    sa.Column('alarm_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('deadline', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_start_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_end_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_next_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_interval', sa.String(length=32), nullable=True),
    sa.Column('is_template', sa.Boolean(), nullable=False),
    sa.Column('is_penalty', sa.Boolean(), nullable=False),
    sa.Column('cache_status_type', sa.String(length=32), nullable=True),
    sa.Column('cache_fields', sa.TEXT(), nullable=True),
    sa.Column('approved', sa.Boolean(), nullable=False),
    sa.Column('perm_policy', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_guest', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_anonymous', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_sharelink', sa.String(length=32), nullable=False),
    sa.Column('sharelink_hash', sa.String(length=32), nullable=True),
    sa.Column('exam_type', sa.String(length=32), nullable=True),
    sa.Column('attempts_limit', sa.Integer(), nullable=True),
    sa.Column('time_limit', sa.Integer(), nullable=True),
    sa.Column('show_correct_answer', sa.Boolean(), nullable=False, server_default='false'),
    sa.Column('lock_web_interface', sa.Boolean(), nullable=False, server_default='false'),
    sa.Column('success_questions_pct', sa.Numeric(precision=14, scale=2), nullable=False, server_default='0.8'),
    sa.Column('default_notify_message', sa.String(), nullable=True),
    sa.Column('exam_deadline', sa.Integer(), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('workflow_id', sa.String(length=64), nullable=True),
    sa.Column('default_task_workflow_id', sa.String(length=64), nullable=True),
    sa.Column('logic_type_id', sa.String(length=64), nullable=True),
    sa.Column('scheme_wf_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_assistant_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_id', sa.String(length=64), nullable=True),
    sa.Column('resolution_id', sa.String(length=64), nullable=True),
    sa.Column('status_id', sa.String(length=64), nullable=True),
    sa.Column('company_id', sa.String(length=64), nullable=True),
    sa.Column('responsible_id', sa.String(length=64), nullable=True),
    sa.Column('waiting_for_id', sa.String(length=64), nullable=True),
    sa.Column('cloned_from_id', sa.String(length=64), nullable=True),
    sa.Column('activity_id', sa.String(length=64), nullable=True),
    sa.Column('cache_status_opt_id', sa.String(length=64), nullable=True),
    sa.Column('achievement_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['achievement_id'], ['cmf_achievement.id'], ),
    sa.ForeignKeyConstraint(['activity_id'], ['cmf_activity.id'], ),
    sa.ForeignKeyConstraint(['cache_status_opt_id'], ['cmf_status_opt.id'], ),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['company_id'], ['cmf_company.id'], ),
    sa.ForeignKeyConstraint(['default_task_workflow_id'], ['cmf_workflow.id'], ),
    sa.ForeignKeyConstraint(['logic_type_id'], ['cmf_logic_type.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['perm_security_level_id'], ['cmf_security_level.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['resolution_id'], ['cmf_resolution.id'], ),
    sa.ForeignKeyConstraint(['scheme_wf_id'], ['cmf_scheme_wf.id'], ),
    sa.ForeignKeyConstraint(['status_id'], ['cmf_status.id'], ),
    sa.ForeignKeyConstraint(['workflow_id'], ['cmf_workflow.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_achievement_id'), 'cmf_exam', ['achievement_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_activity_id'), 'cmf_exam', ['activity_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_alarm_date'), 'cmf_exam', ['alarm_date'], unique=False)
    op.create_index(op.f('ix_cmf_exam_approved'), 'cmf_exam', ['approved'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cache_status_opt_id'), 'cmf_exam', ['cache_status_opt_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cache_status_type'), 'cmf_exam', ['cache_status_type'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cloned_from_id'), 'cmf_exam', ['cloned_from_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_author_id'), 'cmf_exam', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_created_at'), 'cmf_exam', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_deleted'), 'cmf_exam', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_import_id'), 'cmf_exam', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_locked_at'), 'cmf_exam', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_locked_by_id'), 'cmf_exam', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_modified_at'), 'cmf_exam', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_modified_by_id'), 'cmf_exam', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_owner_assistant_id'), 'cmf_exam', ['cmf_owner_assistant_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_owner_id'), 'cmf_exam', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_version'), 'cmf_exam', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_viewed_at'), 'cmf_exam', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_code'), 'cmf_exam', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_exam_company_id'), 'cmf_exam', ['company_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_deadline'), 'cmf_exam', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_exam_default_task_workflow_id'), 'cmf_exam', ['default_task_workflow_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_is_template'), 'cmf_exam', ['is_template'], unique=False)
    op.create_index(op.f('ix_cmf_exam_logic_prefix'), 'cmf_exam', ['logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_exam_logic_type_id'), 'cmf_exam', ['logic_type_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_name'), 'cmf_exam', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_exam_orderno'), 'cmf_exam', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_exam_parent_id'), 'cmf_exam', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_parent_logic_prefix'), 'cmf_exam', ['parent_logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_exam_perm_acl_id'), 'cmf_exam', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_perm_parent_id'), 'cmf_exam', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_perm_security_level_id'), 'cmf_exam', ['perm_security_level_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_project_id'), 'cmf_exam', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_resolution_id'), 'cmf_exam', ['resolution_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_responsible_id'), 'cmf_exam', ['responsible_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_root_parent_id'), 'cmf_exam', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_scheme_wf_id'), 'cmf_exam', ['scheme_wf_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_status_id'), 'cmf_exam', ['status_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_tree_parent_id'), 'cmf_exam', ['tree_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_waiting_for_id'), 'cmf_exam', ['waiting_for_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_workflow_id'), 'cmf_exam', ['workflow_id'], unique=False)
    op.create_table('cmf_exam_cmf_owner_assistants',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_cmf_owner_assistants_left_id'), 'cmf_exam_cmf_owner_assistants', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_owner_assistants_parent_id'), 'cmf_exam_cmf_owner_assistants', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_owner_assistants_right_id'), 'cmf_exam_cmf_owner_assistants', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_cmf_owner_assistants_root_id'), 'cmf_exam_cmf_owner_assistants', ['root_id'], unique=False)
    op.create_table('cmf_exam_executors',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_executors_left_id'), 'cmf_exam_executors', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_executors_parent_id'), 'cmf_exam_executors', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_executors_right_id'), 'cmf_exam_executors', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_executors_root_id'), 'cmf_exam_executors', ['root_id'], unique=False)
    op.create_table('cmf_exam_local_links',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_local_links_left_id'), 'cmf_exam_local_links', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_local_links_parent_id'), 'cmf_exam_local_links', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_local_links_right_id'), 'cmf_exam_local_links', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_local_links_root_id'), 'cmf_exam_local_links', ['root_id'], unique=False)
    op.create_table('cmf_question_folder',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('lock_conditions', sa.Boolean(), nullable=False, server_default='true'),
    sa.Column('min_success_cnt', sa.Integer(), nullable=True),
    sa.Column('min_success_pct', sa.Integer(), nullable=True),
    sa.Column('select_algo', sa.String(length=32), nullable=False, server_default='all_questions'),
    sa.Column('random_cnt', sa.Integer(), nullable=True),
    sa.Column('random_pct', sa.Integer(), nullable=True),
    sa.Column('exam_type', sa.String(length=32), nullable=False, server_default='exam'),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_question_folder_cmf_author_id'), 'cmf_question_folder', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_created_at'), 'cmf_question_folder', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_deleted'), 'cmf_question_folder', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_import_id'), 'cmf_question_folder', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_locked_at'), 'cmf_question_folder', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_locked_by_id'), 'cmf_question_folder', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_modified_at'), 'cmf_question_folder', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_modified_by_id'), 'cmf_question_folder', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_owner_id'), 'cmf_question_folder', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_version'), 'cmf_question_folder', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_viewed_at'), 'cmf_question_folder', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_code'), 'cmf_question_folder', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_question_folder_name'), 'cmf_question_folder', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_orderno'), 'cmf_question_folder', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_parent_id'), 'cmf_question_folder', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_perm_acl_id'), 'cmf_question_folder', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_perm_parent_id'), 'cmf_question_folder', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_project_id'), 'cmf_question_folder', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_root_parent_id'), 'cmf_question_folder', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_tree_parent_id'), 'cmf_question_folder', ['tree_parent_id'], unique=False)
    op.create_table('cmf_exam_result',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.Column('status', sa.String(length=32), nullable=False, server_default='TODO'),
    sa.Column('exam_type', sa.String(length=32), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('exam_id', sa.String(length=64), nullable=False),
    sa.Column('responsible_id', sa.String(length=64), nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['exam_id'], ['cmf_exam.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['responsible_id'], ['cmf_person.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_result_cmf_author_id'), 'cmf_exam_result', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_created_at'), 'cmf_exam_result', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_deleted'), 'cmf_exam_result', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_import_id'), 'cmf_exam_result', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_locked_at'), 'cmf_exam_result', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_locked_by_id'), 'cmf_exam_result', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_modified_at'), 'cmf_exam_result', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_modified_by_id'), 'cmf_exam_result', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_owner_id'), 'cmf_exam_result', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_version'), 'cmf_exam_result', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_cmf_viewed_at'), 'cmf_exam_result', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_code'), 'cmf_exam_result', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_exam_result_exam_id'), 'cmf_exam_result', ['exam_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_name'), 'cmf_exam_result', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_orderno'), 'cmf_exam_result', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_parent_id'), 'cmf_exam_result', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_perm_acl_id'), 'cmf_exam_result', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_perm_parent_id'), 'cmf_exam_result', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_project_id'), 'cmf_exam_result', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_responsible_id'), 'cmf_exam_result', ['responsible_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_root_parent_id'), 'cmf_exam_result', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_result_tree_parent_id'), 'cmf_exam_result', ['tree_parent_id'], unique=False)
    op.create_table('cmf_exam_question_folder',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('min_success_cnt', sa.Integer(), nullable=True),
    sa.Column('min_success_pct', sa.Integer(), nullable=True),
    sa.Column('exam_type', sa.String(length=32), nullable=False, server_default='exam'),
    sa.Column('select_algo', sa.String(length=32), nullable=False, server_default='all_questions'),
    sa.Column('random_cnt', sa.Integer(), nullable=True),
    sa.Column('random_pct', sa.Integer(), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('question_folder_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['question_folder_id'], ['cmf_question_folder.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_author_id'), 'cmf_exam_question_folder', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_created_at'), 'cmf_exam_question_folder', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_deleted'), 'cmf_exam_question_folder', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_import_id'), 'cmf_exam_question_folder', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_locked_at'), 'cmf_exam_question_folder', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_locked_by_id'), 'cmf_exam_question_folder', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_modified_at'), 'cmf_exam_question_folder', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_modified_by_id'), 'cmf_exam_question_folder', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_owner_id'), 'cmf_exam_question_folder', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_version'), 'cmf_exam_question_folder', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_cmf_viewed_at'), 'cmf_exam_question_folder', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_code'), 'cmf_exam_question_folder', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_exam_question_folder_name'), 'cmf_exam_question_folder', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_orderno'), 'cmf_exam_question_folder', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_parent_id'), 'cmf_exam_question_folder', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_perm_acl_id'), 'cmf_exam_question_folder', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_perm_parent_id'), 'cmf_exam_question_folder', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_project_id'), 'cmf_exam_question_folder', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_question_folder_id'), 'cmf_exam_question_folder', ['question_folder_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_root_parent_id'), 'cmf_exam_question_folder', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_tree_parent_id'), 'cmf_exam_question_folder', ['tree_parent_id'], unique=False)
    op.create_table('cmf_exam_question_folder_result',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('status', sa.String(length=32), nullable=False, server_default='not_started'),
    sa.Column('min_success_cnt', sa.Integer(), nullable=True),
    sa.Column('min_success_pct', sa.Integer(), nullable=True),
    sa.Column('exam_type', sa.String(length=32), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('exam_question_folder_id', sa.String(length=64), nullable=False),
    sa.Column('cache_question_folder_id', sa.String(length=64), nullable=False),
    sa.ForeignKeyConstraint(['cache_question_folder_id'], ['cmf_question_folder.id'], ),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['exam_question_folder_id'], ['cmf_exam_question_folder.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['parent_id'], ['cmf_exam_result.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cache_question_folder_id'), 'cmf_exam_question_folder_result', ['cache_question_folder_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_author_id'), 'cmf_exam_question_folder_result', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_created_at'), 'cmf_exam_question_folder_result', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_deleted'), 'cmf_exam_question_folder_result', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_import_id'), 'cmf_exam_question_folder_result', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_locked_at'), 'cmf_exam_question_folder_result', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_locked_by_id'), 'cmf_exam_question_folder_result', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_modified_at'), 'cmf_exam_question_folder_result', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_modified_by_id'), 'cmf_exam_question_folder_result', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_owner_id'), 'cmf_exam_question_folder_result', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_version'), 'cmf_exam_question_folder_result', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_cmf_viewed_at'), 'cmf_exam_question_folder_result', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_code'), 'cmf_exam_question_folder_result', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_exam_question_folder_id'), 'cmf_exam_question_folder_result', ['exam_question_folder_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_name'), 'cmf_exam_question_folder_result', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_orderno'), 'cmf_exam_question_folder_result', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_parent_id'), 'cmf_exam_question_folder_result', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_perm_acl_id'), 'cmf_exam_question_folder_result', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_perm_parent_id'), 'cmf_exam_question_folder_result', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_project_id'), 'cmf_exam_question_folder_result', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_root_parent_id'), 'cmf_exam_question_folder_result', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_question_folder_result_tree_parent_id'), 'cmf_exam_question_folder_result', ['tree_parent_id'], unique=False)
    op.create_table('cmf_exam_spectators',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_exam_spectators_left_id'), 'cmf_exam_spectators', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_spectators_parent_id'), 'cmf_exam_spectators', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_spectators_right_id'), 'cmf_exam_spectators', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_exam_spectators_root_id'), 'cmf_exam_spectators', ['root_id'], unique=False)
    op.create_table('cmf_person_achievement',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('time_limit', sa.Integer(), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('achievement_id', sa.String(length=64), nullable=False),
    sa.ForeignKeyConstraint(['achievement_id'], ['cmf_achievement.id'], ),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_person_achievement_achievement_id'), 'cmf_person_achievement', ['achievement_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_author_id'), 'cmf_person_achievement', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_created_at'), 'cmf_person_achievement', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_deleted'), 'cmf_person_achievement', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_import_id'), 'cmf_person_achievement', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_locked_at'), 'cmf_person_achievement', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_locked_by_id'), 'cmf_person_achievement', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_modified_at'), 'cmf_person_achievement', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_modified_by_id'), 'cmf_person_achievement', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_owner_id'), 'cmf_person_achievement', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_version'), 'cmf_person_achievement', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_cmf_viewed_at'), 'cmf_person_achievement', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_code'), 'cmf_person_achievement', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_person_achievement_name'), 'cmf_person_achievement', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_orderno'), 'cmf_person_achievement', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_parent_id'), 'cmf_person_achievement', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_perm_acl_id'), 'cmf_person_achievement', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_perm_parent_id'), 'cmf_person_achievement', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_project_id'), 'cmf_person_achievement', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_root_parent_id'), 'cmf_person_achievement', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_person_achievement_tree_parent_id'), 'cmf_person_achievement', ['tree_parent_id'], unique=False)
    op.create_table('cmf_question',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('exam_type', sa.String(length=32), nullable=False, server_default='exam'),
    sa.Column('type', sa.String(length=32), nullable=False, server_default='input'),
    sa.Column('is_answer_case_sensitive', sa.Boolean(), nullable=False, server_default='false'),
    sa.Column('answer_options', sa.TEXT(), nullable=True),
    sa.Column('correct_answers', sa.TEXT(), nullable=False, server_default='[]'),
    sa.Column('difficulty_level', sa.String(length=32), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_question_cmf_author_id'), 'cmf_question', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_created_at'), 'cmf_question', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_deleted'), 'cmf_question', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_import_id'), 'cmf_question', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_locked_at'), 'cmf_question', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_locked_by_id'), 'cmf_question', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_modified_at'), 'cmf_question', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_modified_by_id'), 'cmf_question', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_owner_id'), 'cmf_question', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_version'), 'cmf_question', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_question_cmf_viewed_at'), 'cmf_question', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_code'), 'cmf_question', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_question_name'), 'cmf_question', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_question_orderno'), 'cmf_question', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_question_parent_id'), 'cmf_question', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_perm_acl_id'), 'cmf_question', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_perm_parent_id'), 'cmf_question', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_project_id'), 'cmf_question', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_root_parent_id'), 'cmf_question', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_tree_parent_id'), 'cmf_question', ['tree_parent_id'], unique=False)
    op.create_table('cmf_question_folder_cmf_question',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.ForeignKeyConstraint(['left_id'], ['cmf_question_folder.id'], ),
    sa.ForeignKeyConstraint(['right_id'], ['cmf_question.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_question_folder_cmf_question_left_id'), 'cmf_question_folder_cmf_question', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_question_parent_id'), 'cmf_question_folder_cmf_question', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_question_right_id'), 'cmf_question_folder_cmf_question', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_folder_cmf_question_root_id'), 'cmf_question_folder_cmf_question', ['root_id'], unique=False)
    op.create_table('cmf_question_result',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('status', sa.String(length=32), nullable=False, server_default='no_answer'),
    sa.Column('exam_type', sa.String(length=32), nullable=True),
    sa.Column('answer_text', sa.String(), nullable=True),
    sa.Column('answer_variants', sa.TEXT(), nullable=False, server_default='[]'),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('question_id', sa.String(length=64), nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['question_id'], ['cmf_question.id'], ),
    sa.ForeignKeyConstraint(['parent_id'], ['cmf_exam_question_folder_result.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_question_result_cmf_author_id'), 'cmf_question_result', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_created_at'), 'cmf_question_result', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_deleted'), 'cmf_question_result', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_import_id'), 'cmf_question_result', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_locked_at'), 'cmf_question_result', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_locked_by_id'), 'cmf_question_result', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_modified_at'), 'cmf_question_result', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_modified_by_id'), 'cmf_question_result', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_owner_id'), 'cmf_question_result', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_version'), 'cmf_question_result', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_cmf_viewed_at'), 'cmf_question_result', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_code'), 'cmf_question_result', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_question_result_name'), 'cmf_question_result', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_orderno'), 'cmf_question_result', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_parent_id'), 'cmf_question_result', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_perm_acl_id'), 'cmf_question_result', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_perm_parent_id'), 'cmf_question_result', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_project_id'), 'cmf_question_result', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_question_id'), 'cmf_question_result', ['question_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_root_parent_id'), 'cmf_question_result', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_question_result_tree_parent_id'), 'cmf_question_result', ['tree_parent_id'], unique=False)
    op.create_table('cmf_report',
    sa.Column('id', sa.String(length=64), nullable=False),
    sa.Column('cmf_locked_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_created_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_modified_at', sa.TIMESTAMP(timezone=True), nullable=False),
    sa.Column('cmf_viewed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('cmf_deleted', sa.Boolean(), nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), nullable=True),
    sa.Column('name', sa.String(length=256), nullable=True),
    sa.Column('code', sa.String(length=64), nullable=True),
    sa.Column('system', sa.Boolean(), nullable=False),
    sa.Column('text', sa.TEXT(), nullable=True),
    sa.Column('import_original', sa.Boolean(), nullable=False),
    sa.Column('import_raw_json', sa.TEXT(), nullable=True),
    sa.Column('ext_id', sa.String(), nullable=True),
    sa.Column('cmf_archived', sa.Boolean(), nullable=False),
    sa.Column('is_favorite', sa.Boolean(), nullable=False),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=False),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=False),
    sa.Column('tree_hidden', sa.Boolean(), nullable=False),
    sa.Column('sl_owner_lock', sa.Boolean(), nullable=False),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=False),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=False),
    sa.Column('perm_inherit', sa.Boolean(), nullable=False),
    sa.Column('perm_parent_owner_id', sa.String(length=64), nullable=True),
    sa.Column('perm_inherit_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_effective_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), nullable=True),
    sa.Column('perm_encrypt', sa.Boolean(), nullable=False),
    sa.Column('perm_encrypt_help', sa.String(length=256), nullable=True),
    sa.Column('is_public', sa.Boolean(), nullable=False),
    sa.Column('is_public_editable', sa.Boolean(), nullable=False),
    sa.Column('is_public_comments', sa.Boolean(), nullable=False),
    sa.Column('has_children_archived', sa.Boolean(), nullable=False),
    sa.Column('logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form', sa.String(length=32), nullable=False),
    sa.Column('parent_logic_prefix', sa.String(), nullable=True),
    sa.Column('ui_view_form_options', sa.TEXT(), nullable=False),
    sa.Column('status_modified_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_start', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_in_progress_end', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_review_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('status_closed_at', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('no_control', sa.Boolean(), nullable=False),
    sa.Column('priority', sa.Integer(), nullable=False),
    sa.Column('mark', sa.String(length=32), nullable=True),
    sa.Column('user_rating', sa.Numeric(precision=14, scale=2), nullable=True),
    sa.Column('user_rating_count', sa.Integer(), nullable=False),
    sa.Column('alarm_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('deadline', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_start_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('plan_end_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_next_date', sa.TIMESTAMP(timezone=True), nullable=True),
    sa.Column('period_interval', sa.String(length=32), nullable=True),
    sa.Column('is_template', sa.Boolean(), nullable=False),
    sa.Column('is_penalty', sa.Boolean(), nullable=False),
    sa.Column('cache_status_type', sa.String(length=32), nullable=True),
    sa.Column('cache_fields', sa.TEXT(), nullable=True),
    sa.Column('approved', sa.Boolean(), nullable=False),
    sa.Column('perm_policy', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_guest', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_anonymous', sa.String(length=32), nullable=False),
    sa.Column('perm_policy_sharelink', sa.String(length=32), nullable=False),
    sa.Column('sharelink_hash', sa.String(length=32), nullable=True),
    sa.Column('report_type', sa.String(length=32), nullable=True),
    sa.Column('options', sa.TEXT(), nullable=True),
    sa.Column('view_scope', sa.String(length=32), nullable=True),
    sa.Column('date_start', sa.DATE(), nullable=True),
    sa.Column('date_end', sa.DATE(), nullable=True),
    sa.Column('cmf_author_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_id', sa.String(length=64), nullable=True),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_modified_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_locked_by_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_import_id', sa.String(length=64), nullable=True),
    sa.Column('tree_parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_parent_id', sa.String(length=64), nullable=True),
    sa.Column('project_id', sa.String(length=64), nullable=True),
    sa.Column('perm_acl_id', sa.String(length=64), nullable=True),
    sa.Column('perm_parent_id', sa.String(length=64), nullable=True),
    sa.Column('workflow_id', sa.String(length=64), nullable=True),
    sa.Column('default_task_workflow_id', sa.String(length=64), nullable=True),
    sa.Column('logic_type_id', sa.String(length=64), nullable=True),
    sa.Column('scheme_wf_id', sa.String(length=64), nullable=True),
    sa.Column('cmf_owner_assistant_id', sa.String(length=64), nullable=True),
    sa.Column('perm_security_level_id', sa.String(length=64), nullable=True),
    sa.Column('resolution_id', sa.String(length=64), nullable=True),
    sa.Column('status_id', sa.String(length=64), nullable=True),
    sa.Column('company_id', sa.String(length=64), nullable=True),
    sa.Column('responsible_id', sa.String(length=64), nullable=True),
    sa.Column('waiting_for_id', sa.String(length=64), nullable=True),
    sa.Column('cloned_from_id', sa.String(length=64), nullable=True),
    sa.Column('activity_id', sa.String(length=64), nullable=True),
    sa.Column('cache_status_opt_id', sa.String(length=64), nullable=True),
    sa.ForeignKeyConstraint(['activity_id'], ['cmf_activity.id'], ),
    sa.ForeignKeyConstraint(['cache_status_opt_id'], ['cmf_status_opt.id'], ),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], ),
    sa.ForeignKeyConstraint(['company_id'], ['cmf_company.id'], ),
    sa.ForeignKeyConstraint(['default_task_workflow_id'], ['cmf_workflow.id'], ),
    sa.ForeignKeyConstraint(['logic_type_id'], ['cmf_logic_type.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.ForeignKeyConstraint(['perm_security_level_id'], ['cmf_security_level.id'], ),
    sa.ForeignKeyConstraint(['project_id'], ['cmf_project.id'], ),
    sa.ForeignKeyConstraint(['resolution_id'], ['cmf_resolution.id'], ),
    sa.ForeignKeyConstraint(['scheme_wf_id'], ['cmf_scheme_wf.id'], ),
    sa.ForeignKeyConstraint(['status_id'], ['cmf_status.id'], ),
    sa.ForeignKeyConstraint(['workflow_id'], ['cmf_workflow.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_activity_id'), 'cmf_report', ['activity_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_alarm_date'), 'cmf_report', ['alarm_date'], unique=False)
    op.create_index(op.f('ix_cmf_report_approved'), 'cmf_report', ['approved'], unique=False)
    op.create_index(op.f('ix_cmf_report_cache_status_opt_id'), 'cmf_report', ['cache_status_opt_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cache_status_type'), 'cmf_report', ['cache_status_type'], unique=False)
    op.create_index(op.f('ix_cmf_report_cloned_from_id'), 'cmf_report', ['cloned_from_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_author_id'), 'cmf_report', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_created_at'), 'cmf_report', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_deleted'), 'cmf_report', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_import_id'), 'cmf_report', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_locked_at'), 'cmf_report', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_locked_by_id'), 'cmf_report', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_modified_at'), 'cmf_report', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_modified_by_id'), 'cmf_report', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_owner_assistant_id'), 'cmf_report', ['cmf_owner_assistant_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_owner_id'), 'cmf_report', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_version'), 'cmf_report', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_viewed_at'), 'cmf_report', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_report_code'), 'cmf_report', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_report_company_id'), 'cmf_report', ['company_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_deadline'), 'cmf_report', ['deadline'], unique=False)
    op.create_index(op.f('ix_cmf_report_default_task_workflow_id'), 'cmf_report', ['default_task_workflow_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_is_template'), 'cmf_report', ['is_template'], unique=False)
    op.create_index(op.f('ix_cmf_report_logic_prefix'), 'cmf_report', ['logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_report_logic_type_id'), 'cmf_report', ['logic_type_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_name'), 'cmf_report', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_report_orderno'), 'cmf_report', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_report_parent_id'), 'cmf_report', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_parent_logic_prefix'), 'cmf_report', ['parent_logic_prefix'], unique=False)
    op.create_index(op.f('ix_cmf_report_perm_acl_id'), 'cmf_report', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_perm_parent_id'), 'cmf_report', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_perm_security_level_id'), 'cmf_report', ['perm_security_level_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_project_id'), 'cmf_report', ['project_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_resolution_id'), 'cmf_report', ['resolution_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_responsible_id'), 'cmf_report', ['responsible_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_root_parent_id'), 'cmf_report', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_scheme_wf_id'), 'cmf_report', ['scheme_wf_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_status_id'), 'cmf_report', ['status_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_tree_parent_id'), 'cmf_report', ['tree_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_waiting_for_id'), 'cmf_report', ['waiting_for_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_workflow_id'), 'cmf_report', ['workflow_id'], unique=False)
    op.create_table('cmf_report_cmf_owner_assistants',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_cmf_owner_assistants_left_id'), 'cmf_report_cmf_owner_assistants', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_owner_assistants_parent_id'), 'cmf_report_cmf_owner_assistants', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_owner_assistants_right_id'), 'cmf_report_cmf_owner_assistants', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_owner_assistants_root_id'), 'cmf_report_cmf_owner_assistants', ['root_id'], unique=False)
    op.create_table('cmf_report_executors',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_executors_left_id'), 'cmf_report_executors', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_executors_parent_id'), 'cmf_report_executors', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_executors_right_id'), 'cmf_report_executors', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_executors_root_id'), 'cmf_report_executors', ['root_id'], unique=False)
    op.create_table('cmf_report_local_links',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_local_links_left_id'), 'cmf_report_local_links', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_local_links_parent_id'), 'cmf_report_local_links', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_local_links_right_id'), 'cmf_report_local_links', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_local_links_root_id'), 'cmf_report_local_links', ['root_id'], unique=False)
    op.create_table('cmf_report_spectators',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_spectators_left_id'), 'cmf_report_spectators', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_spectators_parent_id'), 'cmf_report_spectators', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_spectators_right_id'), 'cmf_report_spectators', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_spectators_root_id'), 'cmf_report_spectators', ['root_id'], unique=False)
    op.create_table('cmf_report_cmf_course',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.ForeignKeyConstraint(['left_id'], ['cmf_report.id'], ),
    sa.ForeignKeyConstraint(['right_id'], ['cmf_course.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_cmf_course_left_id'), 'cmf_report_cmf_course', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_course_parent_id'), 'cmf_report_cmf_course', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_course_right_id'), 'cmf_report_cmf_course', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_course_root_id'), 'cmf_report_cmf_course', ['root_id'], unique=False)
    op.create_table('cmf_report_cmf_person',
    sa.Column('id', sa.String(length=128), nullable=False),
    sa.Column('parent_id', sa.String(length=64), nullable=True),
    sa.Column('root_id', sa.String(length=64), nullable=True),
    sa.Column('description', sa.String(length=4096), nullable=True),
    sa.Column('left_id', sa.String(length=64), nullable=True),
    sa.Column('right_id', sa.String(length=64), nullable=True),
    sa.Column('left_name_cache', sa.String(length=256), nullable=True),
    sa.Column('right_name_cache', sa.String(length=256), nullable=True),
    sa.ForeignKeyConstraint(['left_id'], ['cmf_report.id'], ),
    sa.ForeignKeyConstraint(['right_id'], ['cmf_person.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_report_cmf_person_left_id'), 'cmf_report_cmf_person', ['left_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_person_parent_id'), 'cmf_report_cmf_person', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_person_right_id'), 'cmf_report_cmf_person', ['right_id'], unique=False)
    op.create_index(op.f('ix_cmf_report_cmf_person_root_id'), 'cmf_report_cmf_person', ['root_id'], unique=False)
    op.add_column('cmf_document', sa.Column('learn_required', sa.Boolean(), nullable=False, server_default='false'))
    op.add_column('cmf_document', sa.Column('learn_course_id', sa.String(length=64), nullable=True))
    op.create_index(op.f('ix_cmf_document_learn_course_id'), 'cmf_document', ['learn_course_id'], unique=False)
    op.create_foreign_key(None, 'cmf_document', 'cmf_course', ['learn_course_id'], ['id'])
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(None, 'cmf_document', type_='foreignkey')
    op.drop_index(op.f('ix_cmf_document_learn_course_id'), table_name='cmf_document')
    op.drop_column('cmf_document', 'learn_course_id')
    op.drop_column('cmf_document', 'learn_required')
    op.drop_index(op.f('ix_cmf_report_spectators_root_id'), table_name='cmf_report_spectators')
    op.drop_index(op.f('ix_cmf_report_spectators_right_id'), table_name='cmf_report_spectators')
    op.drop_index(op.f('ix_cmf_report_spectators_parent_id'), table_name='cmf_report_spectators')
    op.drop_index(op.f('ix_cmf_report_spectators_left_id'), table_name='cmf_report_spectators')
    op.drop_table('cmf_report_spectators')
    op.drop_index(op.f('ix_cmf_report_local_links_root_id'), table_name='cmf_report_local_links')
    op.drop_index(op.f('ix_cmf_report_local_links_right_id'), table_name='cmf_report_local_links')
    op.drop_index(op.f('ix_cmf_report_local_links_parent_id'), table_name='cmf_report_local_links')
    op.drop_index(op.f('ix_cmf_report_local_links_left_id'), table_name='cmf_report_local_links')
    op.drop_table('cmf_report_local_links')
    op.drop_index(op.f('ix_cmf_report_executors_root_id'), table_name='cmf_report_executors')
    op.drop_index(op.f('ix_cmf_report_executors_right_id'), table_name='cmf_report_executors')
    op.drop_index(op.f('ix_cmf_report_executors_parent_id'), table_name='cmf_report_executors')
    op.drop_index(op.f('ix_cmf_report_executors_left_id'), table_name='cmf_report_executors')
    op.drop_table('cmf_report_executors')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_assistants_root_id'), table_name='cmf_report_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_assistants_right_id'), table_name='cmf_report_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_assistants_parent_id'), table_name='cmf_report_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_assistants_left_id'), table_name='cmf_report_cmf_owner_assistants')
    op.drop_table('cmf_report_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_report_workflow_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_waiting_for_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_tree_parent_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_status_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_scheme_wf_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_root_parent_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_responsible_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_resolution_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_project_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_perm_security_level_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_perm_parent_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_perm_acl_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_parent_logic_prefix'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_parent_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_orderno'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_name'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_logic_type_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_logic_prefix'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_is_template'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_default_task_workflow_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_deadline'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_company_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_code'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_viewed_at'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_version'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_owner_assistant_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_modified_by_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_modified_at'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_locked_by_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_locked_at'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_import_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_deleted'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_created_at'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cmf_author_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cloned_from_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cache_status_type'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_cache_status_opt_id'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_approved'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_alarm_date'), table_name='cmf_report')
    op.drop_index(op.f('ix_cmf_report_activity_id'), table_name='cmf_report')
    op.drop_table('cmf_report')
    op.drop_index(op.f('ix_cmf_question_result_tree_parent_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_root_parent_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_question_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_project_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_perm_parent_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_perm_acl_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_parent_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_orderno'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_name'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_code'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_viewed_at'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_version'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_owner_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_modified_by_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_modified_at'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_locked_by_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_locked_at'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_import_id'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_deleted'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_created_at'), table_name='cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_result_cmf_author_id'), table_name='cmf_question_result')
    op.drop_table('cmf_question_result')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_question_root_id'), table_name='cmf_question_folder_cmf_question')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_question_right_id'), table_name='cmf_question_folder_cmf_question')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_question_parent_id'), table_name='cmf_question_folder_cmf_question')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_question_left_id'), table_name='cmf_question_folder_cmf_question')
    op.drop_table('cmf_question_folder_cmf_question')
    op.drop_index(op.f('ix_cmf_question_folder_tree_parent_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_root_parent_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_project_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_perm_parent_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_perm_acl_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_parent_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_orderno'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_name'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_code'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_viewed_at'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_version'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_owner_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_modified_by_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_modified_at'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_locked_by_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_locked_at'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_import_id'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_deleted'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_created_at'), table_name='cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_folder_cmf_author_id'), table_name='cmf_question_folder')
    op.drop_table('cmf_question_folder')
    op.drop_index(op.f('ix_cmf_question_tree_parent_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_root_parent_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_project_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_perm_parent_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_perm_acl_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_parent_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_orderno'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_name'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_code'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_viewed_at'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_version'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_owner_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_modified_by_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_modified_at'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_locked_by_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_locked_at'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_import_id'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_deleted'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_created_at'), table_name='cmf_question')
    op.drop_index(op.f('ix_cmf_question_cmf_author_id'), table_name='cmf_question')
    op.drop_table('cmf_question')
    op.drop_index(op.f('ix_cmf_person_achievement_tree_parent_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_root_parent_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_project_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_perm_parent_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_perm_acl_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_parent_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_orderno'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_name'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_code'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_viewed_at'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_version'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_owner_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_modified_by_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_modified_at'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_locked_by_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_locked_at'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_import_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_deleted'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_created_at'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_cmf_author_id'), table_name='cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_person_achievement_achievement_id'), table_name='cmf_person_achievement')
    op.drop_table('cmf_person_achievement')
    op.drop_index(op.f('ix_cmf_exam_spectators_root_id'), table_name='cmf_exam_spectators')
    op.drop_index(op.f('ix_cmf_exam_spectators_right_id'), table_name='cmf_exam_spectators')
    op.drop_index(op.f('ix_cmf_exam_spectators_parent_id'), table_name='cmf_exam_spectators')
    op.drop_index(op.f('ix_cmf_exam_spectators_left_id'), table_name='cmf_exam_spectators')
    op.drop_table('cmf_exam_spectators')
    op.drop_index(op.f('ix_cmf_exam_result_tree_parent_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_root_parent_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_responsible_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_project_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_perm_parent_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_perm_acl_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_parent_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_orderno'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_name'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_exam_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_code'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_viewed_at'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_version'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_owner_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_modified_by_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_modified_at'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_locked_by_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_locked_at'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_import_id'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_deleted'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_created_at'), table_name='cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_result_cmf_author_id'), table_name='cmf_exam_result')
    op.drop_table('cmf_exam_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_document_root_id'), table_name='cmf_exam_question_folder_result_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_document_right_id'), table_name='cmf_exam_question_folder_result_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_document_parent_id'), table_name='cmf_exam_question_folder_result_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_document_left_id'), table_name='cmf_exam_question_folder_result_cmf_document')
    op.drop_table('cmf_exam_question_folder_result_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_tree_parent_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_root_parent_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_project_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_perm_parent_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_perm_acl_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_parent_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_orderno'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_name'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_exam_question_folder_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_code'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_viewed_at'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_version'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_owner_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_modified_by_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_modified_at'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_locked_by_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_locked_at'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_import_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_deleted'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_created_at'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cmf_author_id'), table_name='cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_result_cache_question_folder_id'), table_name='cmf_exam_question_folder_result')
    op.drop_table('cmf_exam_question_folder_result')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_document_root_id'), table_name='cmf_exam_question_folder_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_document_right_id'), table_name='cmf_exam_question_folder_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_document_parent_id'), table_name='cmf_exam_question_folder_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_document_left_id'), table_name='cmf_exam_question_folder_cmf_document')
    op.drop_table('cmf_exam_question_folder_cmf_document')
    op.drop_index(op.f('ix_cmf_exam_question_folder_tree_parent_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_root_parent_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_question_folder_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_project_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_perm_parent_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_perm_acl_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_parent_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_orderno'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_name'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_code'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_viewed_at'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_version'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_owner_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_modified_by_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_modified_at'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_locked_by_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_locked_at'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_import_id'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_deleted'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_created_at'), table_name='cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_question_folder_cmf_author_id'), table_name='cmf_exam_question_folder')
    op.drop_table('cmf_exam_question_folder')
    op.drop_index(op.f('ix_cmf_exam_local_links_root_id'), table_name='cmf_exam_local_links')
    op.drop_index(op.f('ix_cmf_exam_local_links_right_id'), table_name='cmf_exam_local_links')
    op.drop_index(op.f('ix_cmf_exam_local_links_parent_id'), table_name='cmf_exam_local_links')
    op.drop_index(op.f('ix_cmf_exam_local_links_left_id'), table_name='cmf_exam_local_links')
    op.drop_table('cmf_exam_local_links')
    op.drop_index(op.f('ix_cmf_exam_executors_root_id'), table_name='cmf_exam_executors')
    op.drop_index(op.f('ix_cmf_exam_executors_right_id'), table_name='cmf_exam_executors')
    op.drop_index(op.f('ix_cmf_exam_executors_parent_id'), table_name='cmf_exam_executors')
    op.drop_index(op.f('ix_cmf_exam_executors_left_id'), table_name='cmf_exam_executors')
    op.drop_table('cmf_exam_executors')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_assistants_root_id'), table_name='cmf_exam_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_assistants_right_id'), table_name='cmf_exam_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_assistants_parent_id'), table_name='cmf_exam_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_assistants_left_id'), table_name='cmf_exam_cmf_owner_assistants')
    op.drop_table('cmf_exam_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_exam_workflow_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_waiting_for_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_tree_parent_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_status_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_scheme_wf_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_root_parent_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_responsible_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_resolution_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_project_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_perm_security_level_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_perm_parent_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_perm_acl_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_parent_logic_prefix'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_parent_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_orderno'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_name'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_logic_type_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_logic_prefix'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_is_template'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_default_task_workflow_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_deadline'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_company_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_code'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_viewed_at'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_version'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_owner_assistant_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_modified_by_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_modified_at'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_locked_by_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_locked_at'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_import_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_deleted'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_created_at'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cmf_author_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cloned_from_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cache_status_type'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_cache_status_opt_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_approved'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_alarm_date'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_activity_id'), table_name='cmf_exam')
    op.drop_index(op.f('ix_cmf_exam_achievement_id'), table_name='cmf_exam')
    op.drop_table('cmf_exam')
    op.drop_index(op.f('ix_cmf_document_docs_links_root_id'), table_name='cmf_document_docs_links')
    op.drop_index(op.f('ix_cmf_document_docs_links_right_id'), table_name='cmf_document_docs_links')
    op.drop_index(op.f('ix_cmf_document_docs_links_parent_id'), table_name='cmf_document_docs_links')
    op.drop_index(op.f('ix_cmf_document_docs_links_left_id'), table_name='cmf_document_docs_links')
    op.drop_table('cmf_document_docs_links')
    op.drop_index(op.f('ix_cmf_desk_tree_parent_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_root_parent_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_project_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_perm_parent_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_perm_acl_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_parent_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_orderno'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_name'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_code'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_viewed_at'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_version'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_owner_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_modified_by_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_modified_at'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_locked_by_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_locked_at'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_import_id'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_deleted'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_created_at'), table_name='cmf_desk')
    op.drop_index(op.f('ix_cmf_desk_cmf_author_id'), table_name='cmf_desk')
    op.drop_table('cmf_desk')
    op.drop_index(op.f('ix_cmf_course_spectators_root_id'), table_name='cmf_course_spectators')
    op.drop_index(op.f('ix_cmf_course_spectators_right_id'), table_name='cmf_course_spectators')
    op.drop_index(op.f('ix_cmf_course_spectators_parent_id'), table_name='cmf_course_spectators')
    op.drop_index(op.f('ix_cmf_course_spectators_left_id'), table_name='cmf_course_spectators')
    op.drop_table('cmf_course_spectators')
    op.drop_index(op.f('ix_cmf_course_progress_tree_parent_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_root_parent_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_responsible_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_project_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_perm_parent_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_perm_acl_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_parent_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_orderno'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_name'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_course_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_code'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_viewed_at'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_version'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_owner_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_modified_by_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_modified_at'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_locked_by_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_locked_at'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_import_id'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_deleted'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_created_at'), table_name='cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_progress_cmf_author_id'), table_name='cmf_course_progress')
    op.drop_table('cmf_course_progress')
    op.drop_index(op.f('ix_cmf_course_local_links_root_id'), table_name='cmf_course_local_links')
    op.drop_index(op.f('ix_cmf_course_local_links_right_id'), table_name='cmf_course_local_links')
    op.drop_index(op.f('ix_cmf_course_local_links_parent_id'), table_name='cmf_course_local_links')
    op.drop_index(op.f('ix_cmf_course_local_links_left_id'), table_name='cmf_course_local_links')
    op.drop_table('cmf_course_local_links')
    op.drop_index(op.f('ix_cmf_course_executors_root_id'), table_name='cmf_course_executors')
    op.drop_index(op.f('ix_cmf_course_executors_right_id'), table_name='cmf_course_executors')
    op.drop_index(op.f('ix_cmf_course_executors_parent_id'), table_name='cmf_course_executors')
    op.drop_index(op.f('ix_cmf_course_executors_left_id'), table_name='cmf_course_executors')
    op.drop_table('cmf_course_executors')
    op.drop_index(op.f('ix_cmf_course_document_result_tree_parent_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_root_parent_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_project_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_perm_parent_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_perm_acl_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_parent_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_orderno'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_name'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_document_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_code'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_viewed_at'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_version'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_owner_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_modified_by_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_modified_at'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_locked_by_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_locked_at'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_import_id'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_deleted'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_created_at'), table_name='cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_document_result_cmf_author_id'), table_name='cmf_course_document_result')
    op.drop_table('cmf_course_document_result')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_assistants_root_id'), table_name='cmf_course_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_assistants_right_id'), table_name='cmf_course_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_assistants_parent_id'), table_name='cmf_course_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_assistants_left_id'), table_name='cmf_course_cmf_owner_assistants')
    op.drop_table('cmf_course_cmf_owner_assistants')
    op.drop_index(op.f('ix_cmf_course_workflow_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_waiting_for_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_tree_parent_id'), table_name='cmf_course')
    op.drop_index('ix_cmf_course_text_gin_trgm', table_name='cmf_course', postgresql_using='gin', postgresql_ops={'text': 'gin_trgm_ops'})
    op.drop_index(op.f('ix_cmf_course_status_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_scheme_wf_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_root_parent_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_responsible_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_resolution_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_project_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_perm_security_level_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_perm_parent_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_perm_acl_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_parent_logic_prefix'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_parent_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_orderno'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_name'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_logic_type_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_logic_prefix'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_is_template'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_default_task_workflow_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_deadline'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_company_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_code'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_viewed_at'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_version'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_owner_assistant_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_modified_by_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_modified_at'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_locked_by_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_locked_at'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_import_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_deleted'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_created_at'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cmf_author_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cloned_from_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cache_status_type'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_cache_status_opt_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_approved'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_alarm_date'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_activity_id'), table_name='cmf_course')
    op.drop_index(op.f('ix_cmf_course_achievement_id'), table_name='cmf_course')
    op.drop_table('cmf_course')
    op.drop_index(op.f('ix_cmf_achievement_tree_parent_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_root_parent_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_project_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_perm_parent_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_perm_acl_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_parent_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_orderno'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_name'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_code'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_viewed_at'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_version'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_owner_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_modified_by_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_modified_at'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_locked_by_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_locked_at'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_import_id'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_deleted'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_created_at'), table_name='cmf_achievement')
    op.drop_index(op.f('ix_cmf_achievement_cmf_author_id'), table_name='cmf_achievement')
    op.drop_table('cmf_achievement')
    op.drop_index(op.f('ix_cmf_report_cmf_person_root_id'), table_name='cmf_report_cmf_person')
    op.drop_index(op.f('ix_cmf_report_cmf_person_right_id'), table_name='cmf_report_cmf_person')
    op.drop_index(op.f('ix_cmf_report_cmf_person_parent_id'), table_name='cmf_report_cmf_person')
    op.drop_index(op.f('ix_cmf_report_cmf_person_left_id'), table_name='cmf_report_cmf_person')
    op.drop_table('cmf_report_cmf_person')
    op.drop_index(op.f('ix_cmf_report_cmf_course_root_id'), table_name='cmf_report_cmf_course')
    op.drop_index(op.f('ix_cmf_report_cmf_course_right_id'), table_name='cmf_report_cmf_course')
    op.drop_index(op.f('ix_cmf_report_cmf_course_parent_id'), table_name='cmf_report_cmf_course')
    op.drop_index(op.f('ix_cmf_report_cmf_course_left_id'), table_name='cmf_report_cmf_course')
    op.drop_table('cmf_report_cmf_course')
    # ### end Alembic commands ###
