def upgrade()

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


def upgrade():
    """
    Add `cascade` delete option on fk and
    add new job type - validation_only.
    """
    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"],
        ondelete="cascade",
    )

    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",
        "jobs",
        ["job_id"],
        ["job_id"],
        ondelete="cascade",
    )
    op.create_foreign_key(
        JOB_ANNOTATOR_JOB_ID_FK,
        "association_job_annotator",
        "users",
        ["user_id"],
        ["user_id"],
        ondelete="cascade",
    )

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

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

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

    op.execute(
        "ALTER TYPE validation_type ADD VALUE IF NOT EXISTS 'validation_only'"
    )