"""empty message

Revision ID: fcd9cebaa79c
Revises: d77ee40254f1
Create Date: 2019-05-07 11:06:50.293370

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = "fcd9cebaa79c"
down_revision = "a8a7537985c0"
branch_labels = None
depends_on = None


def upgrade():
    # ### Catch `textsearch_idx` index if created outside of Alembic (tm2-tm3 upgrade script) ###
    conn = op.get_bind()
    inspector = sa.engine.reflection.Inspector.from_engine(conn)
    indexes = inspector.get_indexes("project_info")
    for index in indexes:
        # there is a table named "textsearch_idx"
        if index["name"] == "textsearch_idx":
            op.drop_index("textsearch_idx", table_name="project_info")
    # ### end of catching `textsearch_idx` index ###

    # ### commands auto generated by Alembic - please adjust! ###
    op.create_index(
        "idx_project_info_composite",
        "project_info",
        ["locale", "project_id"],
        unique=False,
    )
    op.create_index(
        "textsearch_idx",
        "project_info",
        ["text_searchable"],
        postgresql_using="gin",
        unique=False,
    )
    op.drop_index("idx_project_info composite", table_name="project_info")
    op.alter_column(
        "projects", "task_creation_mode", existing_type=sa.INTEGER(), nullable=False
    )
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.alter_column(
        "projects", "task_creation_mode", existing_type=sa.INTEGER(), nullable=True
    )
    op.create_index(
        "idx_project_info composite",
        "project_info",
        ["locale", "project_id"],
        unique=False,
    )
    op.drop_index("textsearch_idx", table_name="project_info")
    op.drop_index("idx_project_info_composite", table_name="project_info")
    # ### end Alembic commands ###
