"""Calendar

Revision ID: 0ef2b0f66d93
Revises: fcf70e352ad6
Create Date: 2023-08-17 16:26:20.979974

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

# revision identifiers, used by Alembic.
revision = '0ef2b0f66d93'
down_revision = 'fcf70e352ad6'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('cmf_calendar_day',
    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('date', sa.DATE(), nullable=True),
    sa.Column('day_type', sa.String(length=32), nullable=True),
    sa.Column('day_week', sa.Integer(), nullable=True),
    sa.Column('year', sa.Integer(), nullable=True),
    sa.Column('month', sa.Integer(), nullable=True),
    sa.Column('day', sa.Integer(), nullable=True),
    sa.Column('interval_total_minutes', sa.Integer(), nullable=True),
    sa.Column('interval_json', sa.TEXT(), 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.ForeignKeyConstraint(['parent_id'], ['cmf_calendar.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_calendar_day_cmf_author_id'), 'cmf_calendar_day', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_created_at'), 'cmf_calendar_day', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_deleted'), 'cmf_calendar_day', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_locked_at'), 'cmf_calendar_day', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_locked_by_id'), 'cmf_calendar_day', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_modified_at'), 'cmf_calendar_day', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_modified_by_id'), 'cmf_calendar_day', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_owner_id'), 'cmf_calendar_day', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_version'), 'cmf_calendar_day', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_cmf_viewed_at'), 'cmf_calendar_day', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_date'), 'cmf_calendar_day', ['date'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_day'), 'cmf_calendar_day', ['day'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_day_type'), 'cmf_calendar_day', ['day_type'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_day_week'), 'cmf_calendar_day', ['day_week'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_interval_total_minutes'), 'cmf_calendar_day', ['interval_total_minutes'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_month'), 'cmf_calendar_day', ['month'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_parent_id'), 'cmf_calendar_day', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_day_year'), 'cmf_calendar_day', ['year'], unique=False)
    op.create_table('cmf_calendar_exclude',
    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=True),
    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=True),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=True),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=True),
    sa.Column('tree_hidden', sa.Boolean(), nullable=True),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=True),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=True),
    sa.Column('perm_inherit', sa.Boolean(), nullable=True),
    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=True),
    sa.Column('exclude_type', sa.String(length=32), nullable=True),
    sa.Column('period_start_date', sa.DATE(), nullable=True),
    sa.Column('period_end_date', sa.DATE(), nullable=True),
    sa.Column('repeat_times', sa.Integer(), nullable=True),
    sa.Column('repeat_type', sa.String(length=32), nullable=True),
    sa.Column('intervals_total_minutes', 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('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(['parent_id'], ['cmf_calendar.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_author_id'), 'cmf_calendar_exclude', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_created_at'), 'cmf_calendar_exclude', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_deleted'), 'cmf_calendar_exclude', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_import_id'), 'cmf_calendar_exclude', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_locked_at'), 'cmf_calendar_exclude', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_locked_by_id'), 'cmf_calendar_exclude', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_modified_at'), 'cmf_calendar_exclude', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_modified_by_id'), 'cmf_calendar_exclude', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_owner_id'), 'cmf_calendar_exclude', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_version'), 'cmf_calendar_exclude', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_cmf_viewed_at'), 'cmf_calendar_exclude', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_code'), 'cmf_calendar_exclude', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_calendar_exclude_name'), 'cmf_calendar_exclude', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_orderno'), 'cmf_calendar_exclude', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_parent_id'), 'cmf_calendar_exclude', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_perm_acl_id'), 'cmf_calendar_exclude', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_perm_parent_id'), 'cmf_calendar_exclude', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_root_parent_id'), 'cmf_calendar_exclude', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_tree_parent_id'), 'cmf_calendar_exclude', ['tree_parent_id'], unique=False)
    op.create_table('cmf_calendar_exclude_interval',
    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=True),
    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=True),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=True),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=True),
    sa.Column('tree_hidden', sa.Boolean(), nullable=True),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=True),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=True),
    sa.Column('perm_inherit', sa.Boolean(), nullable=True),
    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=True),
    sa.Column('from_time', sa.Time(), nullable=True),
    sa.Column('to_time', sa.Time(), nullable=True),
    sa.Column('interval_minutes', 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('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(['parent_id'], ['cmf_calendar_exclude.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_author_id'), 'cmf_calendar_exclude_interval', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_created_at'), 'cmf_calendar_exclude_interval', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_deleted'), 'cmf_calendar_exclude_interval', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_import_id'), 'cmf_calendar_exclude_interval', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_locked_at'), 'cmf_calendar_exclude_interval', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_locked_by_id'), 'cmf_calendar_exclude_interval', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_modified_at'), 'cmf_calendar_exclude_interval', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_modified_by_id'), 'cmf_calendar_exclude_interval', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_owner_id'), 'cmf_calendar_exclude_interval', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_version'), 'cmf_calendar_exclude_interval', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_cmf_viewed_at'), 'cmf_calendar_exclude_interval', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_code'), 'cmf_calendar_exclude_interval', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_name'), 'cmf_calendar_exclude_interval', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_orderno'), 'cmf_calendar_exclude_interval', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_parent_id'), 'cmf_calendar_exclude_interval', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_perm_acl_id'), 'cmf_calendar_exclude_interval', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_perm_parent_id'), 'cmf_calendar_exclude_interval', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_root_parent_id'), 'cmf_calendar_exclude_interval', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_exclude_interval_tree_parent_id'), 'cmf_calendar_exclude_interval', ['tree_parent_id'], unique=False)
    op.create_table('cmf_calendar_work_week',
    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=True),
    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=True),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=True),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=True),
    sa.Column('tree_hidden', sa.Boolean(), nullable=True),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=True),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=True),
    sa.Column('perm_inherit', sa.Boolean(), nullable=True),
    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=True),
    sa.Column('period_start_date', sa.DATE(), nullable=True),
    sa.Column('period_end_date', sa.DATE(), nullable=True),
    sa.Column('day0_type', sa.String(length=32), nullable=True),
    sa.Column('day1_type', sa.String(length=32), nullable=True),
    sa.Column('day2_type', sa.String(length=32), nullable=True),
    sa.Column('day3_type', sa.String(length=32), nullable=True),
    sa.Column('day4_type', sa.String(length=32), nullable=True),
    sa.Column('day5_type', sa.String(length=32), nullable=True),
    sa.Column('day6_type', sa.String(length=32), nullable=True),
    sa.Column('day0_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day1_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day2_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day3_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day4_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day5_intervals_total_minutes', sa.Integer(), nullable=True),
    sa.Column('day6_intervals_total_minutes', 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('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(['parent_id'], ['cmf_calendar.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_author_id'), 'cmf_calendar_work_week', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_created_at'), 'cmf_calendar_work_week', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_deleted'), 'cmf_calendar_work_week', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_import_id'), 'cmf_calendar_work_week', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_locked_at'), 'cmf_calendar_work_week', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_locked_by_id'), 'cmf_calendar_work_week', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_modified_at'), 'cmf_calendar_work_week', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_modified_by_id'), 'cmf_calendar_work_week', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_owner_id'), 'cmf_calendar_work_week', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_version'), 'cmf_calendar_work_week', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_cmf_viewed_at'), 'cmf_calendar_work_week', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_code'), 'cmf_calendar_work_week', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_calendar_work_week_name'), 'cmf_calendar_work_week', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_orderno'), 'cmf_calendar_work_week', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_parent_id'), 'cmf_calendar_work_week', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_perm_acl_id'), 'cmf_calendar_work_week', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_perm_parent_id'), 'cmf_calendar_work_week', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_root_parent_id'), 'cmf_calendar_work_week', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_tree_parent_id'), 'cmf_calendar_work_week', ['tree_parent_id'], unique=False)
    op.create_table('cmf_calendar_work_week_interval',
    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=True),
    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=True),
    sa.Column('has_tree_nodes', sa.Boolean(), nullable=True),
    sa.Column('tree_node_is_branch', sa.Boolean(), nullable=True),
    sa.Column('tree_hidden', sa.Boolean(), nullable=True),
    sa.Column('orderno', sa.Integer(), nullable=True),
    sa.Column('perm_public', sa.Boolean(), nullable=True),
    sa.Column('perm_has_acl', sa.Boolean(), nullable=True),
    sa.Column('perm_inherit', sa.Boolean(), nullable=True),
    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=True),
    sa.Column('day_week', sa.Integer(), nullable=True),
    sa.Column('from_time', sa.Time(), nullable=True),
    sa.Column('to_time', sa.Time(), nullable=True),
    sa.Column('interval_minutes', 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('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(['parent_id'], ['cmf_calendar_work_week.id'], ),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], ),
    sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_author_id'), 'cmf_calendar_work_week_interval', ['cmf_author_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_created_at'), 'cmf_calendar_work_week_interval', ['cmf_created_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_deleted'), 'cmf_calendar_work_week_interval', ['cmf_deleted'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_import_id'), 'cmf_calendar_work_week_interval', ['cmf_import_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_locked_at'), 'cmf_calendar_work_week_interval', ['cmf_locked_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_locked_by_id'), 'cmf_calendar_work_week_interval', ['cmf_locked_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_modified_at'), 'cmf_calendar_work_week_interval', ['cmf_modified_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_modified_by_id'), 'cmf_calendar_work_week_interval', ['cmf_modified_by_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_owner_id'), 'cmf_calendar_work_week_interval', ['cmf_owner_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_version'), 'cmf_calendar_work_week_interval', ['cmf_version'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_cmf_viewed_at'), 'cmf_calendar_work_week_interval', ['cmf_viewed_at'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_code'), 'cmf_calendar_work_week_interval', ['code'], unique=True)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_name'), 'cmf_calendar_work_week_interval', ['name'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_orderno'), 'cmf_calendar_work_week_interval', ['orderno'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_parent_id'), 'cmf_calendar_work_week_interval', ['parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_perm_acl_id'), 'cmf_calendar_work_week_interval', ['perm_acl_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_perm_parent_id'), 'cmf_calendar_work_week_interval', ['perm_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_root_parent_id'), 'cmf_calendar_work_week_interval', ['root_parent_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_work_week_interval_tree_parent_id'), 'cmf_calendar_work_week_interval', ['tree_parent_id'], unique=False)
    op.drop_index('ix_cmf_calendar_exception_cmf_author_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_created_at', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_deleted', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_import_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_locked_at', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_locked_by_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_modified_at', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_modified_by_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_owner_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_version', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_cmf_viewed_at', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_code', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_name', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_orderno', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_parent_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_perm_acl_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_perm_parent_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_root_parent_id', table_name='cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_exception_tree_parent_id', table_name='cmf_calendar_exception')
    op.drop_table('cmf_calendar_exception')
    op.drop_index('ix_cmf_calendar_workday_cmf_author_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_created_at', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_deleted', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_import_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_locked_at', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_locked_by_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_modified_at', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_modified_by_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_owner_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_version', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_cmf_viewed_at', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_code', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_name', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_orderno', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_parent_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_perm_acl_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_perm_parent_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_root_parent_id', table_name='cmf_calendar_workday')
    op.drop_index('ix_cmf_calendar_workday_tree_parent_id', table_name='cmf_calendar_workday')
    op.drop_table('cmf_calendar_workday')
    op.add_column('cmf_calendar', sa.Column('timezone', sa.Integer(), nullable=True))
    op.add_column('cmf_calendar', sa.Column('parent_calendar_id', sa.String(length=64), nullable=True))
    op.add_column('cmf_calendar', sa.Column('default_workweek_id', sa.String(length=64), nullable=True))
    op.create_index(op.f('ix_cmf_calendar_default_workweek_id'), 'cmf_calendar', ['default_workweek_id'], unique=False)
    op.create_index(op.f('ix_cmf_calendar_parent_calendar_id'), 'cmf_calendar', ['parent_calendar_id'], unique=False)
    op.create_foreign_key(None, 'cmf_calendar', 'cmf_calendar_work_week', ['default_workweek_id'], ['id'])
    op.create_foreign_key(None, 'cmf_calendar', 'cmf_calendar', ['parent_calendar_id'], ['id'])
    op.add_column('cmf_global_settings', sa.Column('default_calendar_id', sa.String(length=64), nullable=True))
    op.create_index(op.f('ix_cmf_global_settings_default_calendar_id'), 'cmf_global_settings', ['default_calendar_id'], unique=False)
    op.create_foreign_key(None, 'cmf_global_settings', 'cmf_calendar', ['default_calendar_id'], ['id'])
    op.add_column('cmf_project', sa.Column('calendar_id', sa.String(length=64), nullable=True))
    op.create_index(op.f('ix_cmf_project_calendar_id'), 'cmf_project', ['calendar_id'], unique=False)
    op.create_foreign_key(None, 'cmf_project', 'cmf_calendar', ['calendar_id'], ['id'])
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(None, 'cmf_project', type_='foreignkey')
    op.drop_index(op.f('ix_cmf_project_calendar_id'), table_name='cmf_project')
    op.drop_column('cmf_project', 'calendar_id')
    op.drop_constraint(None, 'cmf_global_settings', type_='foreignkey')
    op.drop_index(op.f('ix_cmf_global_settings_default_calendar_id'), table_name='cmf_global_settings')
    op.drop_column('cmf_global_settings', 'default_calendar_id')
    op.drop_constraint(None, 'cmf_calendar', type_='foreignkey')
    op.drop_constraint(None, 'cmf_calendar', type_='foreignkey')
    op.drop_index(op.f('ix_cmf_calendar_parent_calendar_id'), table_name='cmf_calendar')
    op.drop_index(op.f('ix_cmf_calendar_default_workweek_id'), table_name='cmf_calendar')
    op.drop_column('cmf_calendar', 'default_workweek_id')
    op.drop_column('cmf_calendar', 'parent_calendar_id')
    op.drop_column('cmf_calendar', 'timezone')
    op.create_table('cmf_calendar_workday',
    sa.Column('id', sa.VARCHAR(length=64), autoincrement=False, nullable=False),
    sa.Column('cmf_locked_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True),
    sa.Column('cmf_created_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False),
    sa.Column('cmf_modified_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False),
    sa.Column('cmf_viewed_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True),
    sa.Column('cmf_deleted', sa.BOOLEAN(), autoincrement=False, nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), autoincrement=False, nullable=True),
    sa.Column('name', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('code', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('system', sa.BOOLEAN(), autoincrement=False, nullable=False),
    sa.Column('text', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('import_original', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('import_raw_json', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('ext_id', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('is_favorite', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('has_tree_nodes', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('tree_node_is_branch', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('tree_hidden', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('orderno', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('perm_public', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_has_acl', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_inherit', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_parent_owner_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_inherit_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_effective_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_encrypt', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('weekday', sa.VARCHAR(length=32), autoincrement=False, nullable=True),
    sa.Column('from_time', postgresql.TIME(), autoincrement=False, nullable=True),
    sa.Column('to_time', postgresql.TIME(), autoincrement=False, nullable=True),
    sa.Column('start_date', sa.DATE(), autoincrement=False, nullable=True),
    sa.Column('end_date', sa.DATE(), autoincrement=False, nullable=True),
    sa.Column('cmf_author_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_owner_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_modified_by_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_locked_by_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_import_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('tree_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('cmf_archived', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], name='cmf_calendar_workday_cmf_import_id_fkey'),
    sa.ForeignKeyConstraint(['parent_id'], ['cmf_calendar.id'], name='cmf_calendar_workday_parent_id_fkey'),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], name='cmf_calendar_workday_perm_acl_id_fkey'),
    sa.PrimaryKeyConstraint('id', name='cmf_calendar_workday_pkey')
    )
    op.create_index('ix_cmf_calendar_workday_tree_parent_id', 'cmf_calendar_workday', ['tree_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_root_parent_id', 'cmf_calendar_workday', ['root_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_perm_parent_id', 'cmf_calendar_workday', ['perm_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_perm_acl_id', 'cmf_calendar_workday', ['perm_acl_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_parent_id', 'cmf_calendar_workday', ['parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_orderno', 'cmf_calendar_workday', ['orderno'], unique=False)
    op.create_index('ix_cmf_calendar_workday_name', 'cmf_calendar_workday', ['name'], unique=False)
    op.create_index('ix_cmf_calendar_workday_code', 'cmf_calendar_workday', ['code'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_viewed_at', 'cmf_calendar_workday', ['cmf_viewed_at'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_version', 'cmf_calendar_workday', ['cmf_version'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_owner_id', 'cmf_calendar_workday', ['cmf_owner_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_modified_by_id', 'cmf_calendar_workday', ['cmf_modified_by_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_modified_at', 'cmf_calendar_workday', ['cmf_modified_at'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_locked_by_id', 'cmf_calendar_workday', ['cmf_locked_by_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_locked_at', 'cmf_calendar_workday', ['cmf_locked_at'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_import_id', 'cmf_calendar_workday', ['cmf_import_id'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_deleted', 'cmf_calendar_workday', ['cmf_deleted'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_created_at', 'cmf_calendar_workday', ['cmf_created_at'], unique=False)
    op.create_index('ix_cmf_calendar_workday_cmf_author_id', 'cmf_calendar_workday', ['cmf_author_id'], unique=False)
    op.create_table('cmf_calendar_exception',
    sa.Column('id', sa.VARCHAR(length=64), autoincrement=False, nullable=False),
    sa.Column('cmf_locked_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True),
    sa.Column('cmf_created_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False),
    sa.Column('cmf_modified_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=False),
    sa.Column('cmf_viewed_at', postgresql.TIMESTAMP(timezone=True), autoincrement=False, nullable=True),
    sa.Column('cmf_deleted', sa.BOOLEAN(), autoincrement=False, nullable=False),
    sa.Column('cmf_version', sa.BIGINT(), autoincrement=False, nullable=True),
    sa.Column('name', sa.VARCHAR(length=256), autoincrement=False, nullable=True),
    sa.Column('code', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('system', sa.BOOLEAN(), autoincrement=False, nullable=False),
    sa.Column('text', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('import_original', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('import_raw_json', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('ext_id', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('is_favorite', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('has_tree_nodes', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('tree_node_is_branch', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('tree_hidden', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('orderno', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.Column('perm_public', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_has_acl', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_inherit', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('perm_parent_owner_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_inherit_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_effective_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_encrypt', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('exception_type', sa.VARCHAR(length=32), autoincrement=False, nullable=True),
    sa.Column('repeat', sa.VARCHAR(length=32), autoincrement=False, nullable=True),
    sa.Column('date', sa.DATE(), autoincrement=False, nullable=True),
    sa.Column('start_date', sa.DATE(), autoincrement=False, nullable=True),
    sa.Column('end_date', sa.DATE(), autoincrement=False, nullable=True),
    sa.Column('cmf_author_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_owner_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_modified_by_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_locked_by_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('cmf_import_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('tree_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('root_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_acl_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_parent_id', sa.VARCHAR(length=64), autoincrement=False, nullable=True),
    sa.Column('perm_security_level_allowed_ids_cache', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('cmf_archived', sa.BOOLEAN(), server_default=sa.text('false'), autoincrement=False, nullable=False),
    sa.ForeignKeyConstraint(['cmf_import_id'], ['cmf_import.id'], name='cmf_calendar_exception_cmf_import_id_fkey'),
    sa.ForeignKeyConstraint(['parent_id'], ['cmf_calendar.id'], name='cmf_calendar_exception_parent_id_fkey'),
    sa.ForeignKeyConstraint(['perm_acl_id'], ['cmf_access_list.id'], name='cmf_calendar_exception_perm_acl_id_fkey'),
    sa.PrimaryKeyConstraint('id', name='cmf_calendar_exception_pkey')
    )
    op.create_index('ix_cmf_calendar_exception_tree_parent_id', 'cmf_calendar_exception', ['tree_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_root_parent_id', 'cmf_calendar_exception', ['root_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_perm_parent_id', 'cmf_calendar_exception', ['perm_parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_perm_acl_id', 'cmf_calendar_exception', ['perm_acl_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_parent_id', 'cmf_calendar_exception', ['parent_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_orderno', 'cmf_calendar_exception', ['orderno'], unique=False)
    op.create_index('ix_cmf_calendar_exception_name', 'cmf_calendar_exception', ['name'], unique=False)
    op.create_index('ix_cmf_calendar_exception_code', 'cmf_calendar_exception', ['code'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_viewed_at', 'cmf_calendar_exception', ['cmf_viewed_at'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_version', 'cmf_calendar_exception', ['cmf_version'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_owner_id', 'cmf_calendar_exception', ['cmf_owner_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_modified_by_id', 'cmf_calendar_exception', ['cmf_modified_by_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_modified_at', 'cmf_calendar_exception', ['cmf_modified_at'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_locked_by_id', 'cmf_calendar_exception', ['cmf_locked_by_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_locked_at', 'cmf_calendar_exception', ['cmf_locked_at'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_import_id', 'cmf_calendar_exception', ['cmf_import_id'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_deleted', 'cmf_calendar_exception', ['cmf_deleted'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_created_at', 'cmf_calendar_exception', ['cmf_created_at'], unique=False)
    op.create_index('ix_cmf_calendar_exception_cmf_author_id', 'cmf_calendar_exception', ['cmf_author_id'], unique=False)
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_tree_parent_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_root_parent_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_perm_parent_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_perm_acl_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_parent_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_orderno'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_name'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_code'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_viewed_at'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_version'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_owner_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_modified_by_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_modified_at'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_locked_by_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_locked_at'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_import_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_deleted'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_created_at'), table_name='cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_interval_cmf_author_id'), table_name='cmf_calendar_work_week_interval')
    op.drop_table('cmf_calendar_work_week_interval')
    op.drop_index(op.f('ix_cmf_calendar_work_week_tree_parent_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_root_parent_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_perm_parent_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_perm_acl_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_parent_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_orderno'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_name'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_code'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_viewed_at'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_version'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_owner_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_modified_by_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_modified_at'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_locked_by_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_locked_at'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_import_id'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_deleted'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_created_at'), table_name='cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_work_week_cmf_author_id'), table_name='cmf_calendar_work_week')
    op.drop_table('cmf_calendar_work_week')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_tree_parent_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_root_parent_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_perm_parent_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_perm_acl_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_parent_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_orderno'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_name'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_code'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_viewed_at'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_version'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_owner_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_modified_by_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_modified_at'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_locked_by_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_locked_at'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_import_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_deleted'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_created_at'), table_name='cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_interval_cmf_author_id'), table_name='cmf_calendar_exclude_interval')
    op.drop_table('cmf_calendar_exclude_interval')
    op.drop_index(op.f('ix_cmf_calendar_exclude_tree_parent_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_root_parent_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_perm_parent_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_perm_acl_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_parent_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_orderno'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_name'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_code'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_viewed_at'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_version'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_owner_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_modified_by_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_modified_at'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_locked_by_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_locked_at'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_import_id'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_deleted'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_created_at'), table_name='cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_exclude_cmf_author_id'), table_name='cmf_calendar_exclude')
    op.drop_table('cmf_calendar_exclude')
    op.drop_index(op.f('ix_cmf_calendar_day_year'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_parent_id'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_month'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_interval_total_minutes'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_day_week'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_day_type'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_day'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_date'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_viewed_at'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_version'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_owner_id'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_modified_by_id'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_modified_at'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_locked_by_id'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_locked_at'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_deleted'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_created_at'), table_name='cmf_calendar_day')
    op.drop_index(op.f('ix_cmf_calendar_day_cmf_author_id'), table_name='cmf_calendar_day')
    op.drop_table('cmf_calendar_day')
    # ### end Alembic commands ###
