def downgrade()

in annotation/alembic/versions/36bff2d016f7_expand_validationschema.py [0:0]


def downgrade():
    """
    Remove validation_only job type and
    rollback fk constraints
    """
    op.alter_column(
        "jobs", "validation_type", type_=sa.VARCHAR(), server_default=None
    )
    op.execute("DROP TYPE validation_type;")

    op.execute("DELETE FROM jobs " "WHERE validation_type = 'validation_only'")
    validation_type = postgresql.ENUM(ValidationSchema, name="validation_type")
    validation_type.create(op.get_bind(), checkfirst=True)
    op.alter_column(
        "jobs",
        "validation_type",
        type_=validation_type,
        server_default=ValidationSchema.cross.name,
        postgresql_using="validation_type::validation_type",
    )

    op.drop_constraint(TASKS_JOB_ID_FK, "tasks", type_="foreignkey")
    op.create_foreign_key(
        TASKS_JOB_ID_FK, "tasks", "jobs", ["job_id"], ["job_id"]
    )

    op.drop_constraint(
        JOB_VALIDATOR_USER_ID_FK,
        "association_job_validator",
        type_="foreignkey",
    )
    op.drop_constraint(
        JOB_VALIDATOR_JOB_ID_FK,
        "association_job_validator",
        type_="foreignkey",
    )
    op.create_foreign_key(
        JOB_VALIDATOR_USER_ID_FK,
        "association_job_validator",
        "users",
        ["user_id"],
        ["user_id"],
    )
    op.create_foreign_key(
        JOB_VALIDATOR_JOB_ID_FK,
        "association_job_validator",
        "jobs",
        ["job_id"],
        ["job_id"],
    )

    op.drop_constraint(
        JOB_OWNER_USER_ID_FK, "association_job_owner", type_="foreignkey"
    )
    op.drop_constraint(
        JOB_OWNER_JOB_ID_FK, "association_job_owner", type_="foreignkey"
    )
    op.create_foreign_key(
        JOB_OWNER_USER_ID_FK,
        "association_job_owner",
        "users",
        ["user_id"],
        ["user_id"],
    )
    op.create_foreign_key(
        JOB_OWNER_JOB_ID_FK,
        "association_job_owner",
        "jobs",
        ["job_id"],
        ["job_id"],
    )

    op.drop_constraint(
        JOB_ANNOTATOR_USER_ID_FK,
        "association_job_annotator",
        type_="foreignkey",
    )
    op.drop_constraint(
        JOB_ANNOTATOR_JOB_ID_FK,
        "association_job_annotator",
        type_="foreignkey",
    )
    op.create_foreign_key(
        JOB_ANNOTATOR_USER_ID_FK,
        "association_job_annotator",
        "users",
        ["user_id"],
        ["user_id"],
    )
    op.create_foreign_key(
        JOB_ANNOTATOR_JOB_ID_FK,
        "association_job_annotator",
        "jobs",
        ["job_id"],
        ["job_id"],
    )

    op.drop_constraint(DOCS_TASK_ID_FK, "annotated_docs", type_="foreignkey")
    op.create_foreign_key(
        DOCS_TASK_ID_FK, "annotated_docs", "tasks", ["task_id"], ["id"]
    )